Example 4

HTTP Requests

Example 4

Top  Previous  Next

Upload ảnh lên trang: http://upanh.vn-zoom.org/

(có Tiến trình tải lên)

(Dung lượng ảnh < 1Mb)

 

 

Các bước làm tương tự với Ví dụ 3, tuy nhiên ta sẽ nạp vào tham số $CallBackFunc_Progress của _HttpRequest một hàm nhận lưu lượng Upload. Để hiểu rõ hơn cách sử dụng vào đây.

 

* Tìm ảnh nào lớn tí (> 500Kb và <1Mb) để upload mới thấy rõ tiến trình Upload được.

 

#include <_HttpRequest.au3>

$sImagePath = FileOpenDialog("Choose Pic to post", "", "Image (*.jpg;*.png;*.gif;*.bmp)", 4)

If @error Then Exit

 

Local $aForm = [['type', 'upload'], ['watermark', 1], ['watermark_position', 'br'], ['watermark_logo', 1], ['resize', '0'], ['server', 'flickr'], ['$files[]', $sImagePath]]

 

ProgressOn('', 'Đã upload được 0Mb', '0%')

$rq = _HttpRequest(2, 'https://vn-zoom.org/upanh/upload.php', $aForm, '', '', 'X-Requested-With: XMLHttpRequest', '', ProgressFunc) ; Làm tắt nạp thẳng mảng Form vào luôn khỏi qua bước dùng _HttpRequest_CreateDataForm

ProgressOff()

;-------------------Tách url ảnh----------------------------------

$LinkImage = StringRegExp($rq, '"url":"(.*?)"', 1)

If @error Then Exit MsgBox(4096, 'Lỗi',  'Upload thất bại')

$LinkImage = StringReplace($LinkImage[0], '\', '')

ShellExecute($LinkImage) ; Test thử URL ảnh

 

Func ProgressFunc($NowSize, $TotalSize) ;2 tham số này bắt buộc phải có

$iPercent = Round(100 * $NowSize / $TotalSize, 2)

ProgressSet ($iPercent, $iPercent & '%', 'Đã upload được ' & Round($NowSize / (1024 ^ 2), 2) & 'Mb')

EndFunc