HTML表单上传实际文件而不是快捷方式

时间:2015-10-03 13:44:08

标签: javascript html file-upload

我有一个带有type = file输入的网络表单,用于文件上传。但是,如果用户在Windows中选择快捷方式,则会上载快捷方式文件而不是实际文件(快捷方式目标)。

可以检测到用户已选择快捷方式 - 例如。通过文件扩展名" lnk"。但是我如何(通过javascript)自动上传目标文件而不是快捷方式?

1 个答案:

答案 0 :(得分:-1)

<form onsubmit="return Validate(this);">
  File: <input type="file" name="my file" /><br />
  <input type="submit" value="Submit" />
</form>

Javascript代码:

var _validFileExtensions = [".jpg", ".jpeg", ".bmp", ".gif", ".png"];    
function Validate(oForm) {
    var arrInputs = oForm.getElementsByTagName("input");
    for (var i = 0; i < arrInputs.length; i++) {
        var oInput = arrInputs[i];
        if (oInput.type == "file") {
            var sFileName = oInput.value;
            if (sFileName.length > 0) {
                var blnValid = false;
                for (var j = 0; j < _validFileExtensions.length; j++) {
                    var sCurExtension = _validFileExtensions[j];
                    if (sFileName.substr(sFileName.length - sCurExtension.length, sCurExtension.length).toLowerCase() == sCurExtension.toLowerCase()) {
                        blnValid = true;
                        break;
                    }
                }

                if (!blnValid) {
                    alert("Sorry, " + sFileName + " is invalid, allowed extensions are: " + _validFileExtensions.join(", "));
                    return false;
                }
            }
        }
    }

    return true;
}