Có một tệp "/home/test.mp4"
trong máy cục bộ của tôi,Cách tải tệp lên thư mục đích bằng curl?
Tôi muốn tải tệp đó lên /var/www/ok.mp4
(tên đã thay đổi khi tải lên). Tất cả tệp nguồn và tệp đích đều nằm trong máy cục bộ.
Làm cách nào để sửa mã một phần của tôi, thêm thứ gì đó hoặc thay đổi thứ gì đó?
<?php
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post_string);
curl_exec($ch);
?>
Nghĩ Ram Sharma, mã đã được thay đổi như sau:
<?php
$request = curl_init('http://127.0.0.1/');
curl_setopt($request, CURLOPT_POST, true);
curl_setopt(
$request,
CURLOPT_POSTFIELDS,
array(
'file' => '@' . realpath('/home/test.mp4')
));
curl_setopt($request, CURLOPT_RETURNTRANSFER, true);
echo curl_exec($request);
// close the session
curl_close($request);
?>
Một thông báo lỗi xảy ra:
Nó hoạt động!
Đây là trang web mặc định cho máy chủ này.
Phần mềm máy chủ web đang chạy nhưng chưa có nội dung nào được thêm vào.
Tôi đã thử nghiệm với ftp_put, code1 hoạt động tốt.
code1:
<?php
set_time_limit(0);
$host = 'xxxx';
$usr = 'yyyy';
$pwd = 'zzzz';
$src = 'd:/upload.sql';
$ftp_path = '/public_html/';
$des = 'upload_ftp_put.sql';
$conn_id = ftp_connect($host, 21) or die ("Cannot connect to host");
ftp_login($conn_id, $usr, $pwd) or die("Cannot login");
$upload = ftp_put($conn_id, $ftp_path.$des, $src, FTP_ASCII);
print($upload);
?>
File d:/upload.sql
trong pc địa phương của tôi có thể được tải lên vào my_ftp_ip/public_html/upload_ftp_put.sql
với code1.
Bây giờ tôi đã viết lại nó với curl thành mã2.
code2:
<?php
set_time_limit(0);
$ch = curl_init();
$host = 'xxxx';
$usr = 'yyyy';
$pwd = 'zzzz';
$src = 'd:/upload.sql';
$ftp_path = '/public_html';
$dest = 'upload_curl.sql';
$fp = fopen($src, 'r');
curl_setopt($ch, CURLOPT_URL, 'ftp://user:[email protected]/'.$ftp_path .'/'. $dest);
curl_setopt($ch, CURLOPT_UPLOAD, 1);
curl_setopt($ch, CURLOPT_INFILE, $fp);
curl_setopt($ch, CURLOPT_INFILESIZE, filesize($src));
curl_exec ($ch);
$error_no = curl_errno($ch);
print($error_no);
curl_close ($ch);
?>
Sản lượng thông tin lỗi là 6 .Why không thể tải lên tập tin địa phương của tôi vào ftp với curl Làm thế nào để sửa chữa nó?
Nếu trên hệ thống tệp cục bộ, tại sao không chỉ ['copy ($ src, $ dest)'] (http://php.net/copy)? – mario
Tại sao '/ home /' có thể truy cập được trên mỗi HTTP? Và '_POSTFIELDS' phải làm gì? – mario
Bây giờ tôi không có vps để kiểm tra mã, giả định tất cả các nguồn và tập tin mục tiêu trong máy địa phương có thể được thay đổi khi bạn cho tôi mã đúng. –