PDA

View Full Version : آپلود فايل با PHP + Ajax



Mah
یک شنبه 06 شهریور 1390, 18:25 عصر
سلام .
لطفا اشكال كد ذيل را بگوييد .
چرا فايل آپلود نميشه ؟؟؟؟



<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>

<script language="javascript">
var furl;
function makeRequest(furl) {

//alert(furl);
var http_request = false;
if (window.XMLHttpRequest) { // Mozilla, Safari, ...
http_request = new XMLHttpRequest();
if (http_request.overrideMimeType) {
http_request.overrideMimeType('text/xml');
// See note below about this line
}
} else if (window.ActiveXObject) { // IE
try {
http_request = new ActiveXObject("Msxml2.XMLHTTP");
} catch (e) {
try {
http_request = new ActiveXObject("Microsoft.XMLHTTP");
} catch (e) {}
}
}

if (!http_request) {
alert('خطا هنگام ايجاد آبجكت');
return false;
}
var boundaryString = 'capitano';
var boundary = '--' + boundaryString;
http_request.onreadystatechange = function() { alertContents(http_request); };
http_request.open('POST', 'upload.php', true);
// http_request.setRequestHeader('Content-Type', 'multipart/form-data; \boundary=\"" + boundaryString + "\""');
http_request.setRequestHeader("Content-type", "application/x-www-form-urlencoded; charset=UTF-8");
// http_request.setRequestHeader("Content-type", "multipart/form-data; charset=UTF-8");
http_request.setRequestHeader("Connection", "close");
http_request.setRequestHeader("Content-length", furl.length);
http_request.send(furl);
}

function alertContents(http_request) {

if (http_request.readyState == 4) {
if (http_request.status == 200) {
document.getElementById("data_msg").innerHTML = http_request.responseText;
} else {
alert('There was a problem with the request.');
}
}

}
</script>

</head>

<body>
<form name="addpart" method="POST" enctype="multipart/form-data" onsubmit="data1 = document.getElementById('file').value;url = 'upload.php';makeRequest('file=' + data1);return false;">
<input name="file" type="file" id="file" />
<input type="image" src="" style="width:3cm;height:4cm;" />
<input type="submit" />
</form>
<div align="center" class="div_s" id="data_msg"> </div>

</body>
</html>





<?php

// if (isset($_POST['file']))
{
//echo
$txt=$_POST['file'];
if (! move_uploaded_file($txt, "rand.jpg"))
echo 'file not transfer';
else
echo 'file transfer';
//echo $_FILES['file']['name'];
}

dll1024
دوشنبه 07 شهریور 1390, 01:05 صبح
فکر کنم مسیر فایل آپلود شده اشتباهه
من همین امروز یه کلاس واسه آپلود نوشتم
البته تازه آپلود رو یاد گرفتم
تابع move_uploaded_file رو باید به شکلی که توی اینجا گفته استفاده کنی:
متغیر اول رو باید مسیر فایل تمپ بذاری، متغیر دوم رو مسیر فیزیکی فایل مقصد.



<?php
// In PHP versions earlier than 4.1.0, $HTTP_POST_FILES should be used instead
// of $_FILES.

$uploaddir = '/var/www/uploads/';
$uploadfile = $uploaddir . basename($_FILES['userfile']['name']);

echo '<pre>';
if (move_uploaded_file($_FILES['userfile']['tmp_name'], $uploadfile)) {
echo "File is valid, and was successfully uploaded.\n";
} else {
echo "Possible file upload attack!\n";
}

echo 'Here is some more debugging info:';
print_r($_FILES);

print "</pre>";

?>


http://ir.php.net/manual/en/features.file-upload.post-method.php

A B C D
دوشنبه 07 شهریور 1390, 08:41 صبح
سلام .
لطفا اشكال كد ذيل را بگوييد .
چرا فايل آپلود نميشه ؟؟؟؟

بنظرم کد شما فقط آدرس فایل رو میفرسته، نه خودش رو.

Mah
دوشنبه 07 شهریور 1390, 10:39 صبح
مشكل من آپلود معمولي نيست .
من مي خواهم يك كد Ajax براي آپلود فايل داشته باشم .....

A B C D
دوشنبه 07 شهریور 1390, 11:37 صبح
lol
من نمیدونستم آپلود فایل با AJAX اینقدر ساده است.
الان یه سرچ زدم دوتا مطلب دیدم فهمیدم با چه ترفند راحتی میشه این کار رو انجام داد.

اینو نگاه کنید: http://www.openjs.com/articles/ajax/ajax_file_upload/