我正在使用一个带有文件类型的输入控件,以允许用户上传图像。当我处理上传时,我使用WebImage.GetImageFromRequest()来获取提交的图像。这很有效,除非用户的图像文件名的扩展名不是小写。所以,myimage.jpg可以工作,但myimage.JPG不能。这是一个documented问题,没有已知的解决方案。
我试图通过重命名在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出了什么问题,还是输入控件不喜欢被更改。
发布于 2011-12-21 02:26:59
我的理解是文件控件是只读的。所以你可以清空它,或者读取值,但不能改变它(即使你看起来可以)。
当我搜索google时,我看到IE不允许这样做。
https://stackoverflow.com/questions/8579100
复制相似问题