我需要修改图片上传表单,这样我就可以上传多张图片(确切地说是6张图片)。我已经尝试添加另一个输入并按照其他人的建议更改名称值,但它仍然显示从第一个输入复制的相同图像。我知道这可能很简单,但我不是PHP开发人员,所以我找不到解决方案。
以下是上传图片的代码:
if(isset($_FILES['image']) && $_FILES['image']['tmp_name'] != '') {
$tempext = explode('.', $_FILES['image']['name']);
$tempext = strtolower($tempext[count($tempext) - 1]);
switch($tempext) {
case 'jpg':
case 'jpeg':
$ext = '.jpg';
break;
default:
$ext = false;
}
if($ext != false && move_uploaded_file($_FILES['image']['tmp_name'], $_SERVER['DOCUMENT_ROOT'] . '/img/profiles/' . $id . $ext)) {
$imagesuccess = chmod($_SERVER['DOCUMENT_ROOT'] . '/img/profiles/' . $id . $ext, 0644) ? 'yes' : 'no';
} else {
$imagesuccess = 'no';
}
}
输入:
<div class="control-container<?php if((isset($_FILES['image']) && !empty($_FILES['image']['name']))) echo ' error'; ?>">
<label for="image">Large Image</label>
<div class="multifield">
<?php
if(file_exists($_SERVER['DOCUMENT_ROOT'] . '/img/profiles/' . $id . '.jpg')) {
echo '<img src="/img/profiles/' . $id . '.jpg?' . rand() . '" width="310px" />';
}
?>
<input type="file" name="image" id="image" />
</div>
</div>
非常感谢任何帮助。
由于
答案 0 :(得分:4)
您需要有多个输入字段:
<input type="file" name="image1" />
<input type="file" name="image2" />
etc...
并使用以下方式访问每个文件:
$_FILES['image1'][...]
$_FILES['image2'][...]
etc...
或者您可以使用特定于PHP的数组表示法快捷方式:
<input type="file" name="image[]" />
<input type="file" name="image[]" />
和
$_FILES['image']['tmp_name'][0];
$_FILES['image']['tmp_name'][1];
etc...
请注意,在使用数组表示法时,PHP会使files数组中的每个单独的数据点成为自己的数组。不是将文件的数据集中在一个arra中,而是将每个单独的位分散在多个阵列中。
答案 1 :(得分:2)
如果表单中有6个文件输入,$ _FILES应该在其中包含一个数组。在处理文件中使用print_r($_FILES)
进行检查。
答案 2 :(得分:0)
如果您需要上传更多该文件,只需更改name
元素即可。例如,您可以使用JavaScript添加其他输入字段。每个元素都有一个name="images[]"
,提交后您可以看到var_dump( $_FILES )
得到的内容。
答案 3 :(得分:0)
上传多张图片的基本代码段:
<html>
<?php
define("UPLOAD_DIR", "/path/to/uploads/");
for ($i = 0; $i < count($_FILES["file"]["tmp_name"]); $i++) {
if (is_uploaded_file($_FILES["file"]["tmp_name"][$i])) {
move_uploaded_file($_FILES["file"]["tmp_name"][$i], UPLOAD_DIR . $_FILES["file"]["name"][$i]);
}
}
?>
<body>
<form method="post" enctype="multipart/form-data">
<input name="file[]" type="file" /><br />
<input name="file[]" type="file" /><br />
<input name="file[]" type="file" /><br />
<input type="submit" />
</form>
</body>
</html>
答案 4 :(得分:0)
@Ryan我认为你的问题可能在html部分内部,为什么不使用单个输入,你可以做什么,例如
<form method="post" enctype="multipart/form-data">
<input name="file[]" type="file" multiple="true"><br />
<input type="submit" />
</form>