2012-03-28 172 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变量,然后在这里重用。