【发布时间】:2021-12-20 16:41:43
【问题描述】:
我想上传多个文件并获取要上传的文件名:
我有一个 type_demand 需要上传一些 type_file
例如:对于 type_demand A,我可以上传 type_file X、Y、Z
在我的 php 中,我想获取 3 个文件并知道 X、Y 和 Z 是什么。
这里是我的表单示例:
<form action="<?php echo htmlspecialchars($_SERVER['PHP_SELF']); ?>" method="post"
enctype="multipart/form-data">
<label for="type">Files to upload:</label>
<div class="form-group row">
<label for="FormControlFile1" class="col-sm-2 col-form-label">X</label>
<input type="file" class="form-control-file col-sm-10" id="FormControlFile1" name="myfile[]">
</div>
<div class="form-group row">
<label for="FormControlFile2" class="col-sm-2 col-form-label">Y</label>
<input type="file" class="form-control-file col-sm-10" id="FormControlFile2" name="myfile[]">
</div>
<div class="form-group row">
<label for="FormControlFile3" class="col-sm-2 col-form-label">Z</label>
<input type="file" class="form-control-file col-sm-10" id="FormControlFile3" name="myfile[]">
</div>
</div>
<button type="submit" class="btn btn-primary" name="upload">Upload</button>
</form>
这是我的 php 代码:
<?php
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
if(isset($_FILES['myfile'])){
$tmp_arr= $_FILES['myfile'];
}
// Create an array with desired structure.
for($i=0; $i<count($tmp_arr['name']); $i++){
$files[] = array(
'name' => $tmp_arr['name'][$i],
'type' => $tmp_arr['type'][$i],
'tmpName' => $tmp_arr['tmp_name'][$i],
'error' => $tmp_arr['error'][$i],
'size' => $tmp_arr['size'][$i],
//i want to have another information here to know if it's X, Y or Z file
);
}
foreach($files as $file){
echo '<br/>'.$file['name'] .' is for :' ;
}
结果我想拥有例如:
NameOfFile1 用于:X
NameOfFile2 用于:Y
NameOfFile3 用于:Z
谢谢
【问题讨论】:
-
那么 occ 0 将是第一个,occ 1 将是第二个等等
-
我很想给他们打电话
name="myfile1"和name="myfile2"等等,然后你就知道是哪个了 -
使用数组语法 - 即:
myfile["NameOfFile1"]、myfile["NameOfFile2"]等 - 然后在 PHP 中很容易识别哪个是哪个
标签: php html forms file file-upload