为FormData创建新文件

时间:2018-04-14 08:34:30

标签: ajax forms multipartform-data

我有一个包含textarea和type文件输入的表单。选择文件后,textarea将加载文件的内容。我想要的是能够编辑textarea以及构建另一个文件对象(或更改文件的内容),该文件对象附加到表单提交时使用的formData。简单来说,php服务器应该从textarea接收一个包含内容的文件。我认为一个解决方案是更改实际的真实文件(从存储),然后上传它,但我不想更改文件。谢谢你,祝你有个美好的一天。

<form id='form' enctype='multipart/form-data'>

    <textarea name='textarea'>
    </textarea>
    <span class='btn btn-default btn-file'>
            <input type='file' name='file">
    </span>

</form>

<script>
$("#form").submit(function(event){
     var formData = new FormData(this);

     $.ajax({
        url: '....',
        type: 'POST',
        data: formData,
        success: function (result) {
            .....
        }

}

</script>

1 个答案:

答案 0 :(得分:0)

我找到了解决方案:

var file = new File(["file content"], "fileName.txt", {type: "text/plain"});
formData.set('keyForPost', file);

要从输入中替换旧数据文件,keyForPost应该是输入的名称属性。