我正在使用带有某种文件的输入控件来允许用户上传图像。当我处理上传时,我正在使用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是否有问题,或者输入控件不喜欢被更改。
答案 0 :(得分:1)
我的理解是文件控件是只读的。所以你可以删除它,或读取值,但不要改变它(即使你似乎可以)。
当我搜索谷歌时,我看到IE的特定引用不允许这样做。