دریافت خطای 500 موقع آپلود فایل روی سرور
با سلام
روی localhost خودم تصویر بدون مشکل آپلود میشه ولی زمانی که کدم رو روی هاست می برم خطا با کد 500 میده
برای آپلود از متد زیر استفاده میکنم
public IActionResult UploadImageFile(IEnumerable<IFormFile> filearray, string path)
{
try
{
if (filearray.Count() != 0)
{
string filename = _upload.UploadFileFunc(filearray, path);
return Json(new { status = "success", imagename = filename });
}
return Json(new { status = "faild" });
}
catch
{
return Json(new { status = "faild" });
}
}
public string UploadFileFunc(IEnumerable<IFormFile> files, string uploadPath)
{
var upload = Path.Combine(_appEnvironment.WebRootPath, uploadPath);
var filename = "";
foreach (var item in files)
{
filename = Guid.NewGuid().ToString().Replace("-", "") + Path.GetExtension(item.FileName);
using (var fs = new FileStream(Path.Combine(upload, filename), FileMode.Create))
{
item.CopyTo(fs);
}
}
return filename;
}
و کد جاوا اسکریپتم
$("#Image").change(function () {
var filename = this.files[0].name;
$("#normalImage").html(filename);
});
var UploadNormal = function () {
var data = new FormData;
var file = $("#Image").get(0);
var files = file.files;
for (var i = 0; i < files.length; i++) {
data.append('filearray', files[i]);
}
data.append('path', "upload\\productImage\\");
$.ajax({
type: "post",
url: '/AdminPanel/Product/UploadImageFile',
data: data,
contentType: false,
processData: false
}).done(function (result) {
if (result.status == "success") {
$("#imgNormal").attr('src', "\\upload\\productImage\\" + result.imagename);
$("#divMsgNormal").text("آپلود موفقیت آمیز بود.");
$("#divMsgNormal").css("color", "green");
$("#divMsgNormal").removeClass("hidden");
$("#normal").val(result.imagename);
}
else if (result.status == "faild") {
alert("عکسی برای آپلود انتخاب نشده است");
$("#divMsgNormal").text("عکسی برای آپلود انتخاب نشده است");
$("#divMsgNormal").css("color", "red");
$("#divMsgNormal").removeClass("hidden");
}
}).fail(function (result) {
if (result.status != "success") {
$("#divMsgNormal").css("color", "red");
$("#divMsgNormal").removeClass("hidden");
$("#divMsgNormal").text("در حین آپلود اشکالی بوجود آمد.");
}
});
}
<div class="row">
<div class="col-md-6">
<div class="form-group">
<label for="Image" class="btn" style="width:145px; height:30px; margin-bottom:5px; border-radius:3px;
border:1px solid gray;">
انتخاب تصویر
<i class="icon-file-picture"></i>
</label>
<input asp-for="Image" type="file" accept=".jpg, .png, .tif, .tiff, .jpeg" style="visibility:hidden" />
<span id="normalImage" style="color:black; font-size:12px;"></span>
<br />
<!--نام جدید تصویر-->
<input id="normal" name="normal" hidden />
<input type="button" value="آپلود و نمایش تصویر" onclick="UploadNormal()" class="btn"
style="height:30px; border-radius:3px; border:1px solid gray; width:145px; margin-bottom:10px;" />
</div>
</div>
<div class="col-md-6">
<div class="form-group">
<img id="imgNormal" class="img-bordered img-responsive col-md-12 col-xs-12 col-sm-12"
src="~/upload/productImage/defaultProductImage.jpg" alt="defaultProductImage"
style="height:250px;" />
<div id="divMsgNormal" class="text-center hidden"></div>
</div>
</div>
</div>
پاسخ هوش مصنوعی
خطای 500 به معنای وجود یک مشکل داخلی سرور است. این مشکل می تواند به چندین علت به وجود آید. چند نکته برای رفع مشکل را بررسی کنید:
- اطمینان از دسترسی به پوشه: اطمینان حاصل کنید که پوشه ای که می خواهید فایل ها را در آن آپلود کنید، مجوزهای لازم برای نوشتن را دارد.
- بررسی لاگ های سرور: لاگ های سرور را بررسی کنید تا ببینید آیا اطلاعات بیشتری در مورد خطا وجود دارد یا خیر.
- حجم فایل: حجم فایل های آپلودی را بررسی کنید. ممکن است سرور شما محدودیتی برای حجم فایل های آپلودی داشته باشد (معمولاً در فایل php.ini برای PHP یا تنظیمات مشابه در سایر زبان ها).
- استفاده از try-catch: در بلوک catch تلاش کنید که خطای عینی را ثبت کنید تا بهتر متوجه شوید چه خطایی در حال رخ دادن است:
catch (Exception ex)
{
// ثبت خطا
return Json(new { status = "faild", message = ex.Message });
}
همچنین مطمین شوید که مسیر آپلود فایل ها درست پیکربندی شده و موجود است. استفاده از CSP (Content Security Policy) یا تنظیمات مشابه ممکن است بر روی آپلود فایل ها تأثیر بگذارد. همچنین برای بررسی چگونگی بارگذاری فایل از DevTools در مرورگر استفاده کنید تا ببینید آیا درخواست به درستی ارسال می شود یا خیر.
در نهایت، اگر همه موارد فوق را بررسی کردید و هنوز مشکل وجود دارد، می توانید با میزبان سرور خود تماس بگیرید تا اطلاعات بیشتری در مورد خطا بگیرید.
دستورات هیچ مشکلی نداشتند و مشکل از permission های دایرکتوری هایی بود که درون آن ها می خواستم فایل رو آپلود کنم.
با تغییر permission ها در کنترل پنل plesk مشکل برطرف گردید.
- آموزش استفاده از پلاگین گردونه شانس در Asp.net core به همراه سورس
- نمایش متن به صورت فرمت شده در CkEditor
- آموزش استفاده از SignalR در Asp.net Core با مثال عملی
- ادغام چند گزارش استیمول سافت بصورت پی دی اف در یک فایل
- نحوه تغییر استایل کامپوننت select2 چگونه است ؟
- چگونه امنیت پروژه را در Asp.net Core افزایش دهیم ؟
- ارسال پارامتر در دستور window.open جی کویری
- ارسال پارامتر از طریق جاوااسکریپت با کلیک روی تگ a
- خطای 500 زمان اجرا شدن پروژه روی هاست
- کویری نویسی در استیمول سافت جهت فیلتر اطلاعات
- کار با CkEditor با قابلیت آپلود عکس
- خطا در ایجاد migration در Asp.net core
- تفاوت های Asp.net core و Asp.net mvc چیه؟
- دلیل اسپم شدن ایمیل های ارسالی از سرور
- نحوه لایه بندی پروژه Core و اضافه کردن به IIS
- ارسال ایمیل در Asp.net core
- آیا میشه در mvc core از کامپونت استفاده کرد
- آپلود فایل در Asp.net core چگونه است؟
- حذف کامل یک رکورد در جدول ریلیشن شده
- اشکال در آپلود فایل ویدیو در mvc core 2