将多个图像文件上载到php mysql库
我让厨房在我想要的地方工作了65%。我想知道是否有人可以看看下面的代码,告诉我如何上传多张图片到我的图库 这是代码 简单管理表单代码:将多个图像文件上载到php mysql库,php,mysql,multifile-uploader,Php,Mysql,Multifile Uploader,我让厨房在我想要的地方工作了65%。我想知道是否有人可以看看下面的代码,告诉我如何上传多张图片到我的图库 这是代码 简单管理表单代码: <form enctype="multipart/form-data" action="uploader.php" method="POST"> Category: <select class="text" name="dataType[]"> <option value="treerem
<form enctype="multipart/form-data" action="uploader.php" method="POST">
Category: <select class="text" name="dataType[]">
<option value="treeremoval" selected="selected">treeremoval</option>
<option value="treetrimming" >treetrimming</option>
<option value="treebracing" >treebracing</option>
<option value="stumpgrinding" >stumpgrinding</option>
<option value="firewood" >firewood</option>
<option value="cleanup" >cleanup</option>
</select>
<br /><br />
Caption: <input type="text" name="title[]">
<br /><br />
Image to upload: <input type="file" name="image[]" />
<br /><br />
Category: <select class="text" name="dataType[]">
<option value="treeremoval" selected="selected">treeremoval</option>
<option value="treetrimming" >treetrimming</option>
<option value="treebracing" >treebracing</option>
<option value="stumpgrinding" >stumpgrinding</option>
<option value="firewood" >firewood</option>
<option value="cleanup" >cleanup</option>
</select>
<br /><br />
Caption: <input type="text" name="title[]">
<br /><br />
Image to upload: <input type="file" name="image[]" />
<br /><br />
<input type="submit" value="Upload">
</form>
类别:
特雷莫瓦尔
树木挖掘
树突
树桩研磨
柴火
清理
标题:
要上载的图像:
类别:
特雷莫瓦尔
树木挖掘
树突
树桩研磨
柴火
清理
标题:
要上载的图像:
uploader.php代码:
<form enctype="multipart/form-data" action="uploader.php" method="POST">
Category: <select class="text" name="dataType[]">
<option value="treeremoval" selected="selected">treeremoval</option>
<option value="treetrimming" >treetrimming</option>
<option value="treebracing" >treebracing</option>
<option value="stumpgrinding" >stumpgrinding</option>
<option value="firewood" >firewood</option>
<option value="cleanup" >cleanup</option>
</select>
<br /><br />
Caption: <input type="text" name="title[]">
<br /><br />
Image to upload: <input type="file" name="image[]" />
<br /><br />
Category: <select class="text" name="dataType[]">
<option value="treeremoval" selected="selected">treeremoval</option>
<option value="treetrimming" >treetrimming</option>
<option value="treebracing" >treebracing</option>
<option value="stumpgrinding" >stumpgrinding</option>
<option value="firewood" >firewood</option>
<option value="cleanup" >cleanup</option>
</select>
<br /><br />
Caption: <input type="text" name="title[]">
<br /><br />
Image to upload: <input type="file" name="image[]" />
<br /><br />
<input type="submit" value="Upload">
</form>
在表单中,添加多个文件输入。一种方法是使用数组名-image[]
Image to upload: <input type="file" name="image[]" /><br />
Image to upload: <input type="file" name="image[]" /><br />
Image to upload: <input type="file" name="image[]" /><br />
.... // as many as you want. Just be aware of upload_max_filesize, memory_limit, post_max_size etc.
<br />
手册中有一个关于上传文件时常见陷阱的章节,尤其是多个文件
如果您想执行多个其他操作,可以使用相同的方法(我缩写了selects以减少复制/粘贴)-
最简单的方法是添加多个同名的文件
输入(以一种形式),并添加方括号:
<input type="file" name="image[]">
因此,您将整个上传后过程放入一个循环中,循环遍历文件。
请注意,如果您不总是随每个文件输入提交图像,则某些变量(=输入)将保持为空,您需要将错误处理更改为不显示错误。
我会这样做:
if (move_uploaded_file($_FILES["image"]["tmp_name"][$i], $target_path)) {
//processing...
} else if (!empty($_FILES["image"]["name"][$i]) {
//error
}
显然,在10版之前的Internet Explorer(!)中不幸不支持HTML5功能,它允许您执行以下操作:
<input name="upload[]" type="file" multiple="multiple" />
然后在PHP中,所有文件都将存储在通常可以找到单个文件的位置,除了它现在是一个数组之外,您可以通过添加一层方括号来访问它。例如,$\u文件['uploads']['name'][0]
是您的第一个文件
下面的代码将允许您迭代每个文件。当然,这段代码只显示每个文件名,但是您可以更改循环的内容
foreach ($_FILES['uploads']['name'] as $filename) {
echo '<li>' . $filename . '</li>';
}
foreach($\u文件['uploads']['name']作为$filename){
回显“”.$filename. ”;
}
在这个循环中,您将像正常情况下上传单个文件一样上传每个文件
(来源:)我不知道我是否可以发布链接,但我发现这是在寻找一个可以上传多个文件的系统,并希望与所有其他正在寻找它的人共享
MySQL
PHP
添加多个
每个都有一个唯一的名称您可以用一种相对简单的方式设置它。。。我想它在输入type=“file”上,在那里你放了一个数据类型。。。还是什么?然后$\u文件将是多个文件的数组。我们在学校做的,一次输入多个文件,但是我们使用了一个教师模板,所以我忘了。如果您找不到,请通知我,我将搜索我的文件。@Dagon您能再详细解释一下吗。很抱歉,这种编码有点新。@Ariane我喜欢你的解决方案,如果你能找到那个文件,我将不胜感激。你可以发电子邮件给我daugaard47@gmail.comI很抱歉,我没有受过这方面的教育,我意识到答案就在我面前,但当我尝试了很多错误。你能使用我提供的代码并为我修改它吗。只是不确定从哪里开始foreach脚本…?我确实使用了你的代码。我不想复制/粘贴所有内容,因此我使用缩写…
来显示您不需要更改的内容。保留代码,但只需添加/编辑我显示的行即可。您也可以在php手册中阅读相关内容-在重新阅读我的答案时,我意识到我有点不对劲。您需要为($i=0;0)执行for循环,而不是foreach($\u FILES['image']as$FILES)
$i@user1666456我想它应该是foreach($\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
。我原来的方法是在$\u文件数组中循环-[name]、[type]、[tmp\u name]、[size]、[error]
,而不是文件数组。可以吗?不确定是否可以将“true”作为多个属性的值写入。只要
就行了。另外,确保表单具有enctype=“多部分/表单数据”
。
<input type="file" name="image[]">
$_FILES["image"]["name"][0]
if (move_uploaded_file($_FILES["image"]["tmp_name"][$i], $target_path)) {
//processing...
} else if (!empty($_FILES["image"]["name"][$i]) {
//error
}
<input name="upload[]" type="file" multiple="multiple" />
<input name="upload[]" type="file" multiple />
<form method="post" action="upload.php" enctype="multipart/form-data">
<input name="uploads[]" type="file" multiple="multiple" />
<input type="submit" value="Send" />
</form>
foreach ($_FILES['uploads']['name'] as $filename) {
echo '<li>' . $filename . '</li>';
}
CREATE TABLE `upload_data` (
`ID` int(5) NOT NULL AUTO_INCREMENT,
`USER_CODE` int(4) unsigned zerofill NOT NULL,
`FILE_NAME` varchar(200) NOT NULL,
`FILE_SIZE` varchar(200) NOT NULL,
`FILE_TYPE` varchar(200) NOT NULL,
PRIMARY KEY (`ID`)
)
<?php
if(isset($_FILES['files'])){
$errors= array();
foreach($_FILES['files']['tmp_name'] as $key => $tmp_name ){
$file_name = $key.$_FILES['files']['name'][$key];
$file_size =$_FILES['files']['size'][$key];
$file_tmp =$_FILES['files']['tmp_name'][$key];
$file_type=$_FILES['files']['type'][$key];
if($file_size > 2097152){
$errors[]='File size must be less than 2 MB';
}
$query="INSERT into upload_data (`USER_ID`,`FILE_NAME`,`FILE_SIZE`,`FILE_TYPE`) VALUES('$user_id','$file_name','$file_size','$file_type'); ";
$desired_dir="user_data";
if(empty($errors)==true){
if(is_dir($desired_dir)==false){
mkdir("$desired_dir", 0700); // Create directory if it does not exist
}
if(is_dir("$desired_dir/".$file_name)==false){
move_uploaded_file($file_tmp,"user_data/".$file_name);
}else{ //rename the file if another one exist
$new_dir="user_data/".$file_name.time();
rename($file_tmp,$new_dir) ;
}
mysql_query($query);
}else{
print_r($errors);
}
}
if(empty($error)){
echo "Success";
}
}
?>
<form action="" method="POST" enctype="multipart/form-data">
<input type="file" name="files[]" multiple/>
<input type="submit"/>
</form>