2017-04-13 121 views
1

我正在一個MVC項目,我試圖上傳一個圖像通過AJAX;這在localhost上工作正常,但它在IIS Web服務器上不起作用。一旦我按提交按鈕,它會顯示控制檯上的錯誤,並說:圖像上傳在本地主機,但不是在IIS服務器[Asp.net的Mvc]

http://blahblahmywebsite.com/UserRegistration/UserPhoto 500(內部服務器錯誤)」。

我在這個問題上掙扎了2天了,有什麼建議嗎?

N.B.

- >我曾嘗試已經:網址: '@ Url.Action( 「FunctionName」, 「控制器」)'

- >應用程序池操作(通過其他網上的帖子建議)

- >我GoDaddy的託管服務器上這個網站,其使用的是IIS 8

- >我使用.NET 4.5.2本地服務器

這是我的jQuery:

 $("#fileUserImage").change(function() { 
     userImage(); 
    }); 

    function userImage() { 
     var formData = new FormData(); 
     var totalFiles = document.getElementById("fileUserImage").files.length; 
     for (var i = 0; i < totalFiles; i++) { 
      var file = document.getElementById("fileUserImage").files[i]; 
      formData.append("fileUserImage", file); 
     } 
     $.ajax({ 
      type: "POST", 
      url: '/UserRegistration/UserPhoto', 
      data: formData, 
      dataType: 'json', 
      contentType: false, 
      processData: false, 
      success: function (image) { 
       $("#imgUserImage").attr('src', '../' + image); 

       alert("Entered into success block"); 

      }, 
      error: function (error) { 
       alert("Entered into error block"); 
      } 
     }); 
    } 

這是我的HTML:

<div class="form-group"> 
     <label class="col-md-5 control-label">Photo</label> 
     <div class="col-md-7"> 
      <input type="file" id="fileUserImage" name="fileUserImage"> 
     </div> 
    </div> 
    <div class="form-group"> 
     <div class="img-wrap col-md-offset-5"> 
      <img class="example-image" id="imgUserImage" width="220" style="padding-left:17px;" /> 
     </div> 
    </div> 

這是我的控制器:

[HttpPost] 
    public JsonResult UserPhoto() 
    { 
     var userPic = ""; 
     for (int i = 0; i < Request.Files.Count; i++) 
     { 
      var file = Request.Files[i]; 

      if (file != null) 
      { 
       var fileName = Path.GetFileName(file.FileName); 

       var path = Path.Combine(Server.MapPath("~/Images/User/"), DateTime.Now.Day + "" + DateTime.Now.Month + "" + DateTime.Now.Year + fileName); 
       file.SaveAs(path); 
       userPic = "Images/User/" + DateTime.Now.Day + "" + DateTime.Now.Month + "" + DateTime.Now.Year + fileName; 
      } 
      else 
      { 
       userPic = ""; 
      } 
     } 
     return Json(userPic, JsonRequestBehavior.AllowGet); 
    } 
+1

在500內部服務器錯誤中,您總是需要做的絕對首要事情就是檢查相關的錯誤日誌。 (如果您無權訪問,請尋求支持。) – CBroe

+0

IT回覆: 服務器上發生應用程序錯誤。此應用程序的當前自定義錯誤設置可防止遠程查看應用程序錯誤的細節(出於安全原因)。但是,它可以通過本地服務器上運行的瀏覽器來查看。 –

+1

_「當前的自定義錯誤設置爲這個應用程序阻止」_ - 那麼我建議你首先改變這些設置。 – CBroe

回答

2

檢查你的目標文件夾 - >右鍵點擊文件夾 - >屬性 - >安全選項卡 - >編輯按鈕 - >允許安全。看到下面的圖片。 enter image description here

enter image description here

+0

謝謝,這正是我需要的..... –

+0

歡迎您! – sebu

0

我託管在遠程服務器上我的網站,並有同樣的問題。後來我發現應用程序用戶沒有圖像文件夾的添加/編輯權限。

相關問題