2

我需要使用多种文件输入类型上传多个文件。我知道这可以通过CTRL+单击文件的一种输入类型来完成。我使用 perl 作为我的后端部分。

   <form action="dsadsa" method="post" enctype="multipart">
    <tr>
        <td>
            <input type="file" id="file_upload" name="file_upload" multiple >
        </td>
    </tr>
    <tr>
        <td>
            <input type="file" id="file_upload" name="file_upload" multiple>
        </td>
    </tr>
    <tr>
        <td>
            <input type="file" id="file_upload" name="file_upload" multiple>
        </td>
    </tr>
    <tr>
        <td>
            <input type="file" id="file_upload" name="file_upload" multiple>
        </td>
    </tr>
    <tr>
        <td>
            <input type="file" id="file_upload" name="file_upload" multiple>
        </td>
    </tr>
    <tr>
   <input type="submit" />
   </form>

那是我的 HTML 部分。

我使用 ajaxForm 插件上传文件。

var options = {
            beforeSend: function () {

            },
            uploadProgress : function (event, position, total, percentComplete) {

            },
            success : function (data) {

            },
            error : function (response) {

            },
        };
        $('#myForm').ajaxForm(options);

但它无法获取任何参数( file_upload )

以防万一你想看看我的 perl 方面:

if ($path eq 'dsadas') {   #this is the path in the action part in the form
   my @fhs = cgi->upload('file_upload');  # this is what im talking about, this should get all the files. I also tried using trim_param() instead of cgi->upload.

}
4

1 回答 1

0

基于此..

Perl 的 CGI.pm 可以处理 Firefox 的 <input type="file", multiple=""> 表单域吗?

在服务器端修复它:

未经测试的代码只是一个黑客/示例

 my @fhs = upload('file_upload');
 use File::Type;
 my $ft = File::Type->new();
 my $i = 0;
 my %mimes = { ( $i++ => $ft->checktype_contents(<$_>)) } @fhs;

或类似的东西..

这也有帮助 http://perldoc.perl.org/CGI.html#PROCESSING-A-FILE-UPLOAD-FIELD

于 2014-02-10T22:46:51.413 回答