2
我正在使用輸入控件和一種文件類型來允許用戶上傳圖像。當我處理上傳時,我使用WebImage.GetImageFromRequest()來獲取提交的圖像。這非常有效,除非用戶的圖像文件名稱的擴展名不是小寫。所以,myimage.jpg的作品,但myimage.JPG不會。這是一個documented的問題,沒有解決方案。使用jQuery更改輸入控件值
我想通過重命名在jQuery中輸入的值來解決這個問題,但我無法讓它工作。我有一個函數檢查有效的擴展名,我認爲我可以在這裏添加代碼將值轉換爲全部小寫,但val()方法似乎沒有按預期設置值。
$("#uploadimagebutton").click(function (e) {
var fileName = $('input[name="fileUpload"]').val();
var validFileTypes = ['gif', 'jpg', 'png', 'jpeg', 'bmp'];
if (!fileName) {
e.preventDefault();
return;
}
fileName = fileName.toLowerCase();
alert(fileName); //This displays my file name and path in all lowercase
$('input[name="fileUpload"]').val(fileName); //This is FAILING
alert($('input[name="fileUpload"]').val()); //Shows path unchanged (not lower)
var dots = fileName.split(".")
//get the part AFTER the LAST period.
fileType = "." + dots[dots.length - 1];
if (("." + validFileTypes.join(".")).indexOf(fileType) == -1) {
e.preventDefault();
alert("File Type: " + fileType + " is not allowed. \n Please only upload files that end in types: \n\n." + (validFileTypes.join(" .")) + "\n\nPlease select a new file and try again.");
}
return;
});
您可以在上面看到兩條警報。所以,我的路徑可能是這樣的,
C:\Users\jreddy\Pictures\myimage.JPG
我的第一個警報應該顯示上述字符串的降低版本,它的確如此。
c:\users\jreddy\pictures\myimage.jpg
然後使用val方法設置此值,但是當我這樣做時,我的下一個語句顯示了我的原始字符串。
我不確定我的jQuery是否有問題,或者輸入控件不喜歡被改變。
是的,我發現是這樣。這是一項安全功能。如果WebImage.GetImageFromRequest()爲null,我修改了代碼以從Request.Files獲取圖像。謝謝@Ryley – 2011-12-20 18:54:42