如何在JavaScript / jQuery中修改提交的文件客户端

时间:2014-11-15 12:12:57

标签: javascript jquery forms file flash

我想修改用户在客户端提交的文件,然后再到达我的服务器。要修改它,我想使用与JavaScript通信的Flash小程序。

<form action="" method="post" enctype="multipart/form-data">
    <input type="file" id="id_file">
    <input type="submit" value="Submit">
</form>

有可能吗?如果是的话,我会很感激如何做到这一点:)

我应该将其转换为字符串吗?或者JS可能会提供一些功能来使这些操作更容易?

$( "form" ).change(function(x) {
    //pass file input to Flash applet
    x.preventDefault();
    flashApplet.proceed($('#id_file').value);
});

function callback(modified_file) {
    // Flash applet has modified the file
    // Now submit the form with a new, modified file
    $('#id_file').value = modified_file;
    trigger_submit();
}

该文件可以是视频,音频或图像。

1 个答案:

答案 0 :(得分:0)

不要使用提交按钮,而是使用伪装成看似提交按钮的普通按钮,然后您可以检查按钮被点击的时间,做你的东西,然后使用

document.getElementById("myform").submit();

我会用:

替换你当前的html
<form action="" method="post" enctype="multipart/form-data" id="myform">
  <input type="file">
  <button id="submit">Submit</button>
</form>

然后是js:

document.getElementById('submit').onclick = function() {
  //do your flash stuff
}​;

function callback(){
  //here we submit the form
  document.getElementById("myform").submit();
  // because the file itself has been modified, this is all we need to do.
}

基本上,使用错误的提交按钮,先做你想做的事。