2012-03-28 212 views
0

我有MVC3項目& 評估文件上傳者縮略圖顯示問題

當上傳完成後,我可以看到縮略圖像這樣的jQuery 的偉大工程的代碼如下

<script type="text/jscript"> 
    var uploader = new qq.FileUploader({ 
    element: document.getElementById('file-uploader'), 
    action: '@Url.Action("UploadFile")', 
    allowedExtensions: ['jpg', 'jpeg', 'png', 'gif'], 
    sizeLimit: 2147483647, 
    onComplete: function (id, fileName, responseJSON) { 
      var uploadedFile = "/Images/Orders/thumb-" + responseJSON.uploadedFile; 
      $("#uploadedImage").attr("src", uploadedFile); 
      $("#ImageErrorMessage").text(""); 
      alert("Your file has been uploaded."); 
     } 
    });         
</script> 

所以本地。

但是在LIVE網站上根本沒有顯示縮略圖。 (但無論如何我都會看到提醒信息,並且我檢查了縮略圖圖像。)

縮略圖的大小約爲30 Kb。

所以它應該是,但它沒有。

任何線索?謝謝!

回答

2

你有一個硬編碼的網址:

var uploadedFile = "/Images/Orders/thumb-" + responseJSON.uploadedFile; 

這東西,你不應該在ASP.NET MVC應用程序做。處理網址時,您應該始終使用網址助手。原因是因爲當您在IIS中部署應用程序時,您必須將一個虛擬目錄名稱放在您的URL之前。所以,正確的地址現在是:

var uploadedFile = "/MyAppName/Images/Orders/thumb-" + responseJSON.uploadedFile; 

顯然具有兩個不同的版本,一個是發展,一個用於生產是不可接受的。這就是爲什麼你應該使用url助手。

所以:

var uploadedFile = '@Url.Content("~/images/orders/thumb-")' + responseJSON.uploadedFile; 

,或者如果這是在其中您不能使用服務器端的幫手一個單獨的JavaScript文件,你可以聲明基礎網址作爲您的視圖中的全局JavaScript變量,然後在這裏重用。