【发布时间】:2020-06-06 15:56:45
【问题描述】:
我想使用用户输入的名称上传多个文件。对于单个文件,我可以像这样更改名称
<form action="submit.php" method="post" class="form-validate" enctype="multipart/form-data">
<div class="form-group">
<label class="form-label" for="name">File Name</label>
<input type="text" name="filename" class="form-control" required />
<input type="file" name="file" required>
</div>
<button type="submit" name="add" class="btn btn-primary mt-1">Submit</button>
</form>
提交.php
if(isset($_POST['add'])) {
$filename = $_POST['filename'];
$extension = pathinfo($_FILES["file"]["name"], PATHINFO_EXTENSION);
//insert query to db
move_uploaded_file($_FILES["file"]["tmp_name"], "uploads/quotes/".$filename.".".$extension."");
}
这适用于单个图像。
但对于多张图片,我以这样的形式提供了 5 个文件上传选项
<div class="form-group">
<label class="form-label" for="file2">File Name</label>
<input type="text" name="filename2" class="form-control" />
<input type="file" name="file2">
</div>
<div class="form-group">
<label class="form-label" for="file3">File Name</label>
<input type="text" name="filename32" class="form-control" />
<input type="file" name="file3">
</div>
<div class="form-group">
<label class="form-label" for="file4">File Name</label>
<input type="text" name="filename4" class="form-control" />
<input type="file" name="file4">
</div>
<div class="form-group">
<label class="form-label" for="file5">File Name</label>
<input type="text" name="filename5" class="form-control" />
<input type="file" name="file5">
</div>
我想给出文件名,所以我使用这种方法而不是
<input type="file[]" multiple name="file">
但是这里的任何文件/文件名都可以为空,除了 1st upload 。那么我如何插入数据库并上传到所需的文件夹。 每次上传前我都需要检查文件名是否为空白/文件?请推荐
或者有什么办法可以在<input type="file[]" multiple name="file">方法中更改每个文件的名称?
【问题讨论】:
-
对每个文件字段使用相同的名称,对文本字段也使用相同的名称 - 使用
[]样式语法。即name="file[]"&name="filename[]"- 提交表单时应该有一个索引数组,并且可以根据该索引访问文件和名称 -
抱歉没听懂
标签: php html file-upload