如何在一个html表单中使用多个输入类型文件?

时间:2016-11-02 20:47:22

标签: php html forms

最近我需要在一个表单中使用多个输入类型文件。但是当我发布表单时,它返回null。就像我在$ _POST上什么都没有。我还添加了enctype =" multipart / form-data"。我最近两天都在堆积。谷歌搜索了很多次。但仍然没有得到任何解决方案。请帮我解决这个问题。

<form enctype="multipart/form-data" action="/admin/process_post/savepost" method="POST">
            <div class="uk-grid uk-grid-small" data-uk-grid-margin="">
                <div class="uk-width-medium-7-10">

                    <div class="md-card">
                        <div class="md-card-content">
                            <h3 class="heading_a uk-margin-medium-bottom">Add New Canvas</h3>
                            <div class="uk-grid" data-uk-grid-margin>
                                <div class="uk-width-medium-1-1">
                                    <div class="uk-form-row">
                                        <label>Post Title</label>
                                        <input type="text" name="post_title" id="post_title" class="md-input"  />
                                    </div>

                                    <div class="uk-form-row">
                                        <label>Post Description</label>
                                        <textarea id="post_desc" name="post_desc" cols="30" rows="20"></textarea>
                                    </div>

                                </div>
                            </div>

                        </div>
                    </div>


                </div>

                <div class="uk-width-medium-3-10">
                    <div class="md-card">
                        <div class="md-card-content">
                            <div class="uk-form-row">
                                <p>
                                    <input type="checkbox" name="post_status" id="post_status" checked data-md-icheck />
                                    <label for="post_status" class="inline-label">Post Status</label>
                                </p>
                            </div>
                        </div>
                    </div>

                    <div class="md-card">
                        <div class="md-card-content">
                            <div class="uk-form-row">
                                <label for="post_attachment" class="inline-label">Post Featured Image</label>
                                <input type="file" id="post_attachment" name="post_attachment">
                            </div>

                        </div>
                    </div>

                    <div class="md-card">
                        <div class="md-card-content">
                            <div class="uk-form-row">
                                <label for="result_img" class="inline-label">Post result Image</label>
                                <input type="file" id="result_img" name="result_img" multiple="multiple">
                            </div>

                        </div>
                    </div>

                    <div class="md-card">
                        <div class="md-card-content">
                            <div class="uk-form-row">
                                <button type="submit" class="uk-form-file md-btn md-btn-primary">Save Post</button>
                            </div>
                        </div>
                    </div>

                </div>
            </div>

        </form>

我知道当开发人员遇到这样的问题时,这是一个愚蠢的情况。

3 个答案:

答案 0 :(得分:1)

文件可以通过$_FILES

获取

在使用相同名称进行多次上传时,请将其命名为在名称末尾添加[]的数组:( name="images[]" )

如果上传继续显示为空,并且您在评论中说,如果一个文件正确,请尝试将php.ini post_max_sizeupload_max_filesize更改为更大的数量。另请检查max_file_uploads - 每个请求允许上传的文件数。

答案 1 :(得分:0)

您需要将文件输入名称更改为数组

b''

还可以尝试添加<input type="file" id="result_img" name="result_img[]">

multiple

要检查文件,您必须使用<input type="file" id="result_img" name="result_img[]" multiple> 代替$_FILES

答案 2 :(得分:0)

您的问题应该是您的表单操作,尝试在其末尾添加“/”并查看其是否有效:

var string = /"[^"]+(?:\\"[^"]+)+"/.source,
    float = /\d+\.\d+/.source;

var string_and_int = new RegExp(float + "|(?:" + int + ")?" + string + "|" + string + float, "g");