javascript中有什么办法能修改input file 对象的name属性值么?

查看:105
本文介绍了javascript中有什么办法能修改input file 对象的name属性值么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

请问有什么方法能修改浏览器中file对象的name属性么?
现在项目里 android webview 4.4 遇到一个奇怪问题
中文文件被名被转移成了%4D%3C%2E.png这种名字了
导致form都没发提交了。本人想把name换一下名字看看能不能继续提交form
因为提交英文名的附件是没问题的。

本人尝试过这么写是不好使的 ,用原型链好像也不行
$('#file').get(0).files[0].name="123";

解决方案

这个属性是只读的。无法做到本地的修改。但是你可以提示。

<input type="file" name='upload' multiple="multiple">
    
var formData = new FormData();
$('input[name="upload"]').change(function(event) {
    var files = $(this)[0].files;
    var file_arr = [];
    for (var i = 0; i < files.length; i++) {
        if (files[i].name.match(/[\u4E00-\u9FA5\uF900-\uFA2D]/)) {
            alert('您选中的文件包含中文名,请修改');
        } else {
            file_arr.push(files[i])
        }
    }
    formData.append('file', file_arr);
    $.ajax({
        url: "xx.php",
        type: "POST",
        data: formData,
        processData: false, 
        contentType: false 
    });

})


//这还有个其他的方案:http://stackoverflow.com/questions/4184904/multiple-file-upload-using-ajax。主要是提供思路。

这篇关于javascript中有什么办法能修改input file 对象的name属性值么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆