gpt4 book ai didi

php - 在表单中上传多个 php 文件时,会将第一个文件名传递给其他上传

转载 作者:行者123 更新时间:2023-11-29 08:18:40 26 4
gpt4 key购买 nike

对,我有一个连接到 php 脚本的表单。表单中有多个输入,例如文本、复选框、下拉菜单等。但是,我还有 3 个上传槽,用于 3 张图像,这些图像上传到 img 文件夹,我只需获取名称即可与表单一起存储在 mysql 数据库中.

这是表格。

    <form method="post" action="scripts/AddProduct.php" enctype="multipart/form-data"><table class="table table-bordered table-striped">
<tr>
<td align="right">Category</td>
<td><label><select id="pro_catagory" name"pro_catagory">
<?php echo $result; ?>
</select>
</label></td>
</tr>
<tr>
<td align="right">Subcatagory</td>
<td><label>
<select name="pro_subcategory" id="pro_subcategory">
<option value="Hats">Hats</option>
</select>
</label></td>
</tr>
<tr>
<td align="right">Details</td>
<td><textarea name="pro_details" cols="" rows=""></textarea></td>
</tr>
<tr>
<td align="right">Size</td>
<td>
S
<input type="hidden" name="pro_size" value="0" />
<input type="checkbox" name="pro_size" value="1" />
M
<input type="hidden" name="pro_size_m" value="0" />
<input type="checkbox" name="pro_size_m" value="1" />
L
<input type="hidden" name="pro_size_l" value="0" />
<input type="checkbox" name="pro_size_l" value="1" />
</td>
</tr>
<tr>
<td align="right">Colour</td>
<td><label>
<input type="text" name="pro_colour" id="colour"/>
</label></td>
</tr>
<tr>
<td align="right">1st Image</td>
<td><label>
<input type="file" name="file" id="file" />
</label></td>
</tr>

<tr>
<td align="right">2nd Image</td>
<td><label>
<input type="file" name="filee" id="filee" />
</label></td>
</tr>
<tr>
<td align="right">3rd Image</td>
<td><label>
<input type="file" name="file3" id="file3" />
</label></td>
</tr>
<tr>
<td>&nbsp;</td>
<td><label>
<input type="submit" name="button" id="button" value="Add This Item Now" />
</label></td>
</tr> </table></form>

(我已经缩短了脚本,因此它只是表单中内容的示例)。表格中共有 21 个选项。

接下来是 php 文件 AddProduct.php。

    <?php 
//File Upload 1
if ($_FILES["file"]["error"] > 0)
{
echo "Error: " . $_FILES["file"]["error"] . "<br>";
}
else
{

echo "Upload: " . $_FILES["file"]["name"] . "<br>";
echo "Type: " . $_FILES["file"]["type"] . "<br>";
echo "Size: " . ($_FILES["file"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file"]["tmp_name"] . "<br><br>";




if (file_exists("upload/" . $_FILES["file"]["name"]))
{
echo $_FILES["file"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file"]["tmp_name"],
"upload/" . $_FILES["file"]["name"]);
}
}
//File Upload 2
if ($_FILES["filee"]["error"] > 0)
{
echo "Error: " . $_FILES["filee"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["filee"]["name"] . "<br>";
echo "Type: " . $_FILES["filee"]["type"] . "<br>";
echo "Size: " . ($_FILES["filee"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["filee"]["tmp_name"] . "<br><br>";

if (file_exists("upload/" . $_FILES["filee"]["name"]))
{
echo $_FILES["filee"]["name"] . " already exists. " . "<br><br>";
}
else
{
move_uploaded_file($_FILES["filee"]["tmp_name"],
"upload/" . $_FILES["filee"]["name"]);
}
}
//File Upload 3
if ($_FILES["file3"]["error"] > 0)
{
echo "Error: " . $_FILES["file3"]["error"] . "<br>";
}
else
{
echo "Upload: " . $_FILES["file3"]["name"] . "<br>";
echo "Type: " . $_FILES["file3"]["type"] . "<br>";
echo "Size: " . ($_FILES["file3"]["size"] / 1024) . " kB<br>";
echo "Stored in: " . $_FILES["file3"]["tmp_name"] . "<br><br>";

if (file_exists("upload/" . $_FILES["file3"]["name"]))
{
echo $_FILES["file3"]["name"] . " already exists. ";
}
else
{
move_uploaded_file($_FILES["file3"]["tmp_name"],
"upload/" . $_FILES["file3"]["name"]);
}
}

//Rest of php to get the posted values (all still work)
?>

我的问题是,当提交时,文件名(图像 1)会被跟踪到 filee 和 file3,因此输出结束如下:

Upload: testing.jpg
Type: image/jpeg
Size: 684.8818359375 kB
Stored in: C:\wamp\tmp\php41FF.tmp

testing.jpg already exists. Upload:
Type:
Size: 0 kB
Stored in:

already exists.

Upload:
Type:
Size: 0 kB
Stored in:

感谢您提前提供的任何帮助

编辑:这是 var_dump

array (size=3)
'file' =>
array (size=5)
'name' => string '2Fourk. RV2.jpg' (length=15)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'C:\wamp\tmp\php4FD7.tmp' (length=23)
'error' => int 0
'size' => int 701319
'fileField2' =>
array (size=5)
'name' => string '2Fourk.jpg' (length=10)
'type' => string 'image/jpeg' (length=10)
'tmp_name' => string 'C:\wamp\tmp\php4FD8.tmp' (length=23)
'error' => int 0
'size' => int 938840
'fileField3' =>
array (size=5)
'name' => string 'fiverrgigs.png' (length=14)
'type' => string 'image/png' (length=9)
'tmp_name' => string 'C:\wamp\tmp\php4FE9.tmp' (length=23)
'error' => int 0
'size' => int 18322

最佳答案

我认为@drive235提出了一个很好的建议

我制作了这个简短的脚本。很肮脏。但也许它对您有帮助,因为您使用了很多行脚本。有时用更少的东西会更容易。

它遍历 $_FILES 数组并显示各种图像信息。

foreach($_FILES as $v){
echo "<br />Upload: " . $v["name"]. "<br>";
echo "Type: " .$v["type"] . "<br>";
echo "Size: " . ($v["size"] / 1024) . " kB<br>";
echo "Stored in: " . $v["tmp_name"] . "<br><br>";
var_dump($v);
}

关于php - 在表单中上传多个 php 文件时,会将第一个文件名传递给其他上传,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20017933/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com