fatemefa
چهارشنبه 12 آبان 1395, 12:32 عصر
سلام
من بخش اپلود عکس دارم که از کنترلر های مختلف کار اپلود انجام میشه حالا چطور میتونم متوجه شدم الان کدوم کنترلر و کدوم اکشن درخواست اپلود عکس داده که عکس مربوطه توی پوشه مربوطه ذخیره بشه
ممنون میشم راهنمایی بفرمایید.
fatemefa
چهارشنبه 12 آبان 1395, 14:22 عصر
مشکل حل شد از formdata استفاده کردم
و سمت سرور از این دستور استفاده کردم
string action = Request.Params["action"];
fatemefa
پنج شنبه 13 آبان 1395, 17:32 عصر
سلام لطفا اگه کسی می تونه من راهنمایی کنهمن از چند کنترلر مختلف قرار کار آپلود عکس انجام بدم
حالا این کد jquery که نوشتم
$(document).ready(function () {
$('form').submit(function () {
//$("#ImageUrl2").on('change', function () {
var serviceUrl = '/News/UploadAjax';
var file = document.getElementById("ImageUrl2").files[0];
var action = $(this).attr('id');
var formData = new FormData();
formData.append("filename", file);
formData.append("action", action);
alert(action);
$("#progress").html("<img id='upload_loading' src='/Images/loadingAnimation.gif' />");
$.ajax({
type: "POST",
url: serviceUrl,
data: formData,
contentType: false,
processData: false,
dataType: "json",
success: successFunc,
error: errorFunc,
complete: completeFunc,
id: action
});
function successFunc(data) {
if (data[0] == "true") {
$("#newsimg").html("<img id='upload_loading' src='" + data[1] + "' />");
}
});
});
و اینم کد سمت سرور
public ActionResult UploadAjax()
{
// تعریف یک آرایه دو خانه ای برای ارسال داده ها
var result = new string[2];
// دریافت فایل با نامی که توسط ایجکس ارسال شده و قرار دادن در یک اچ تی تی پی پست فایل بیس
HttpPostedFileBase file = Request.Files["filename"];
// دریافت نام فایل
var fileName = Path.GetFileName(file.FileName);
// دریافت پسوند فایل
var strFileExtension = Path.GetExtension(fileName).ToUpper();
// پوشه آپلود فایل
var strRootRelativePath = "~/NewsPhoto/";
// بررسی وجود تصویر در سرور
if (System.IO.File.Exists(Server.MapPath(strRootRelat ivePath) + Path.GetFileName(file.FileName)))
{
// ارسال خطا
result[1] = "تصویری با این نام در سرور وجود دارد";
return Json(result);
}
// تولید یک نام توسط جیو آی دی و الصاق آن با پسوند تصویر
string newFilename = Guid.NewGuid().ToString().Replace("-", string.Empty) + Path.GetExtension(fileName);
//string newFilename = (Session["userid"]).ToString() + Path.GetExtension(fileName);
// الصاق نام + پسوند + مسیر آپلود
newFilename = "/NewsPhoto/" + newFilename;
// مراحل تبدیل آدرس نسبی به آدرس فیزیکی
var physicalPath = Server.MapPath(newFilename);
// ذخیره تصویر
file.SaveAs(physicalPath);
//////////////////////////////////////////////////////////my code
TempData["NewsPhoto"] = newFilename;
// db.SaveChanges();
////////////////// end my code
// قرار دادن ترو در آرابه
result[0] = "true";
// قرار دادن مسیر تصویر در خانه دوم آرابه
result[1] = newFilename;
// ارسال اطلاعات
return Json(result);
}
مشکلی که دارم این که گاهی اوقات اول وارد اکشن اپلود عکس میشه و گاهی اول وارد اکشن create میشه و این کار tempdata خراب میکنه و عکس صحیح به entity مربوطه وصل نمیشه
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.