काम नहीं कर रहा है मैंने HTML में input
तत्व का उपयोग करके अपने स्थानीय अपाचे वेबसर्वर पर एक छवि अपलोड करने के लिए लिखा था। file
खाली नहीं है, लेकिन form_data
क्यों खाली है?फॉर्मडाटा
$('#upload-image').change(function(e){
var file = e.target.files[0];
var imageType = /image.*/;
if (!file.type.match(imageType))
return;
console.log(file);
var form_data = new FormData();
form_data.append('file', file);
console.log(form_data);
$.ajax({
url: 'http://localhost/upload.php',
cache: false,
contentType: false,
processData: false,
data: form_data,
type: 'POST',
success: function(response){
console.log(response);
},
error: function(error){
console.log(error);
}
});
});
यह स्थानीय वेबसर्वर पर मेरी upload.php
<?php
header('Access-Control-Allow-Origin: *');
if (0 < $_FILES['file']['error']) {
echo 'Error: ' . $_FILES['file']['error'] . '<br>';
}
else {
move_uploaded_file($_FILES['file']['tmp_name'], 'uploads/' . $_FILES['file']['name']);
$target_path = $_SERVER['DOCUMENT_ROOT'] . "/uploads/" . $_FILES['file']['name'];
echo $target_path;
}
?>
console.log(response)
लॉग सभी PHP फ़ाइल का कोड लाइनों, echo
क्या आपने यूआरएल में 'upload.php' का उपयोग करने का प्रयास किया है? एक पूर्ण पथ देखने के लिए आम नहीं है, और स्थानीयहोस्ट का उल्लेख नहीं करना, याद रखें कि AJAX कॉल निर्भर करता है कि जावास्क्रिप्ट फ़ाइल कहां बैठती है, उदाहरण के लिए यदि आपके पास "phpFiles/upload.php" नामक आपकी रूट के भीतर कोई फ़ोल्डर है, तो वह यूआरएल में रखा जाना चाहिए। – Leo
console.log (form_data); ओ/पी क्या हो रहा है? –
आप क्या देखने की उम्मीद कर रहे हैं? आप वास्तव में फॉर्मडाटा ऑब्जेक्ट को लॉग नहीं कर सकते हैं, इसलिए यह खाली होना चाहिए, भले ही फ़ाइल वहां हो। अगर फ़ाइल प्राप्त हुई थी या नहीं तो क्या आपने सर्वर की जांच की थी। – adeneo