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