, अपने स्थानीय मशीन में एक फ़ाइल "/home/test.mp4"
हैकर्ल के साथ लक्ष्य निर्देशिका में फ़ाइल कैसे अपलोड करें?
मैं (जब यह अपलोड नाम बदल) /var/www/ok.mp4
में अपलोड करना चाहते हैं। सभी स्रोत फ़ाइल और लक्ष्य फ़ाइल स्थानीय मशीन में हैं।
कुछ जोड़ने या कुछ बदलने के लिए मेरे आंशिक कोड को कैसे ठीक करें?
<?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);
?>
शर्मा राम के बारे में सोचो, कोड निम्नलिखित के रूप में बदल गया था:
<?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);
?>
एक त्रुटि संदेश होते हैं:
यह काम करता है!
यह इस सर्वर के लिए डिफ़ॉल्ट वेब पेज है।
वेब सर्वर सॉफ्टवेयर चल रहा है लेकिन अभी तक कोई सामग्री नहीं जोड़ा गया है।
मेरे पास ftp_put के साथ परीक्षण है, कोड 1 ठीक काम करता है।
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);
?>
फ़ाइल d:/upload.sql
अपने स्थानीय पीसी में code1 साथ my_ftp_ip/public_html/upload_ftp_put.sql
में अपलोड किया जा सकता है।
अब मैं कोड 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);
?>
त्रुटि की जानकारी उत्पादन 6 क्यों कर्ल के साथ एफ़टीपी में अपने स्थानीय फ़ाइल अपलोड नहीं कर सकते हैं कैसे इसे ठीक करने के?
यदि यह पहले से ही स्थानीय फाइल सिस्टम पर है, तो क्यों न केवल ['प्रतिलिपि ($ src, $ dest)'] (http://php.net/copy)? – mario
वैसे भी '/ home /' HTTP प्रति पहुंच योग्य क्यों होगा? और '_POSTFIELDS' क्या करना चाहिए था? – mario
अब मेरे पास कोड का परीक्षण करने के लिए कोई वीपीएस नहीं है, जब आप मुझे सही कोड देते हैं तो स्थानीय मशीन में सभी स्रोत और लक्ष्य फ़ाइल धारणा को बदला जा सकता है। –