2010-08-08 44 views
17

Nó tầm thường để lấy hình ảnh từ máy chủ nhưng tôi nghĩ về một điều gì đó khác biệt. Đó là câu hỏi điên rồ nhưng ... Có thể gửi tệp (hình ảnh) đến máy chủ nhưng không sử dụng tải lên biểu mẫu hoặc kết nối ftp không? Tôi muốn gửi yêu cầu đến ví dụ. http://www.example.com/file.php với nội dung nhị phân. Tôi nghĩ rằng tôi cần phải đặt hình ảnh tiêu đề kiểu nội dung/jpeg nhưng làm cách nào để thêm một số nội dung vào yêu cầu của tôi?CURL PHP gửi hình ảnh

Trả lời

10

thấy http://docs.php.net/function.curl-setopt:

CURLOPT_POSTFIELDS Các dữ liệu đầy đủ để viết trong một HTTP "POST" hoạt động. Để đăng một tệp, hãy thêm tên tệp bằng @ và sử dụng đường dẫn đầy đủ. Điều này có thể được chuyển thành chuỗi url được mã hóa như 'para1 = val1 & para2 = val2 & ...' hoặc dưới dạng mảng với tên trường là dữ liệu khóa và trường làm giá trị. Nếu giá trị là một mảng, tiêu đề Loại nội dung sẽ được đặt thành nhiều phần/biểu mẫu dữ liệu.
16

có nhiều cách để sử dụng curl để tải lên tập tin hình ảnh, ví dụ:

$ch = curl_init(); 
$data = array('name' => 'Foo', 'file' => '@/path/to/image.jpeg'); 
curl_setopt($ch, CURLOPT_URL, 'http://localhost/upload.php'); 
curl_setopt($ch, CURLOPT_POST, 1); 
//CURLOPT_SAFE_UPLOAD defaulted to true in 5.6.0 
//So next line is required as of php >= 5.6.0 
curl_setopt($ch, CURLOPT_SAFE_UPLOAD, false); 
curl_setopt($ch, CURLOPT_POSTFIELDS, $data); 
curl_exec($ch); 

bạn có thể kiểm tra các ví dụ tại địa chỉ: http://au.php.net/manual/en/function.curl-setopt.php

+0

Đây là những gì tôi đang tìm kiếm. Cảm ơn! –

+0

Cảm ơn bạn như một ví dụ hoàn chỉnh và súc tích! –

+3

CURLOPT_SAFE_UPLOAD được mặc định là true trong 5.6.0 ... vì vậy bạn sẽ cần thêm curl_setopt ($ ch, CURLOPT_SAFE_UPLOAD, false); trước khi đặt CURLOPT_POSTFIELDS. – muglio

0

VolkerK là hoàn toàn đúng, nhưng kinh nghiệm của tôi cho thấy rằng việc gửi một tập tin " Toán tử @ "sẽ chỉ hoạt động với các mảng.

$post['file'] = "@FILE_Path" 

Bây giờ bạn có thể gửi các tập tin sử dụng CURLOPT_POSTFIELDS

+0

Phương pháp này không còn được khuyến nghị. Xem: http://php.net/manual/en/class.curlfile.php – Erik

Các vấn đề liên quan