PDA

View Full Version : آپلود تصویر



Wily_Fox
دوشنبه 07 بهمن 1392, 10:41 صبح
با سلام و خسته نباشید

میخوام وقتی کاربر با فایل آپلود تصویری رو انتخاب کرد به سرور بفرستم واسه آپلود.

تو رویداد change فایل آپلود دستور زیر رو نوشتم.

$('#file').change(function () {
//if (this) {
var url = '...';
var file = this.files[0];
$('#spinner').show();
$.ajax({
type: "POST",
url: url,
enctype: 'multipart/form-data',
data: {
file: file
},
success:
function (data) {
$('#spinner').hide();
}
});
});


مشکل اینجاست که تو سمت سرور ASP.Net MVC
null دریافت می کنه!

[HttpPost]
public ActionResult UploadImage(HttpPostedFileBase file)
{
return Content("file name");
}


متشکرم

ravand
دوشنبه 07 بهمن 1392, 19:54 عصر
من درست متوجه منظورتون نشدم. شما فقط میخوای با ایجکس در جی کوئری فایلی رو آپلود کنی؟ یا هدف دیگه ای هم داری؟

Wily_Fox
سه شنبه 08 بهمن 1392, 07:44 صبح
دقیقا، میخوام با ایجکس در جی کوری عکس آپلود کنم. یه فرم که کاربر قبل از submit فرم عکس رو آپلود می کنه.

ravand
سه شنبه 08 بهمن 1392, 07:47 صبح
آخرین صفحه از این کتاب توضیح داده شده:
http://www.barnamenevisi.blogsky.com/1392/10/23/post-121/

Wily_Fox
شنبه 12 بهمن 1392, 13:09 عصر
پس از چند روز بالاخره تونستم مشکل رو حل کنم:
باید بفرم زیر نوشته شود:

$('#file').change(function () {
$('#spinner').show();
var url = '...';
var file = this.files[0];
var fd = new FormData();
fd.append("file", file);
var xhr = new XMLHttpRequest();
xhr.open("POST", url);
xhr.onreadystatechange = function () {
if (xhr.readyState == 4) {
alert('success');
}
else if (uploadResult == 'success')
alert('error');
};
xhr.send(fd);
});