我正在构建一个电子邮件模板构建器,该构建器使我可以输入内容,然后填充到html电子邮件模板中。表单的一部分允许您添加新的部分。每个部分都有一个上传输入,允许用户向该部分添加缩略图。我正在努力弄清楚如何以单一形式发送来自多个输入的多个图像(而不仅仅是将单个输入设置为“多个”)。
这是HTML
<div class="row">
<div id="example1" class="list-group col">
<div class="list-group-item article">
<h4>Article Heading:</h4>
<input type="text" name="ArticleHeading[]"
placeholder="Type your heading" />
<h4>Article Subheading:</h4>
<input type="text" name="ArticleHeading[]"
placeholder="Type your subheading"/>
<h4>Thumbnail Image:</h4>
<input type="file" name="fileToUpload"
id="fileToUpload">
</div>
</div>
</div>
这是PHP:
//IMAGE UPLOADING
$target_dir = "uploads/";
$target_file = $target_dir .
basename($_FILES["fileToUpload"]["name"]);
$uploadOk = 1;
$imageFileType =
strtolower(pathinfo($target_file,PATHINFO_EXTENSION));
// Check if image file is a actual image or fake image
if(isset($_POST["submit"])) {
$check = getimagesize($_FILES["fileToUpload"]
["tmp_name"]);
if($check !== false) {
$uploadOk = 1;
} else {
echo "File is not an image.";
$uploadOk = 0;
}
}
// Check if file already exists
if (file_exists($target_file)) {
echo "Sorry, file already exists.";
$uploadOk = 0;
}
// // Check file size
// if ($_FILES["fileToUpload"]["size"] > 500000) {
// echo "Sorry, your file is too large.";
// $uploadOk = 0;
// }
// Allow certain file formats
if($imageFileType != "jpg" && $imageFileType != "png"
&& $imageFileType != "jpeg"
&& $imageFileType != "gif" ) {
echo "Sorry, only JPG, JPEG, PNG & GIF files are
allowed.";
$uploadOk = 0;
}
// Check if $uploadOk is set to 0 by an error
if ($uploadOk == 0) {
echo "Sorry, your file was not uploaded.";
// if everything is ok, try to upload file
} else {
if (move_uploaded_file($_FILES["fileToUpload"]
["tmp_name"], $target_file)) {
} else {
echo "Sorry, there was an error uploading your
file.";
}
}
$thumbnailPath = "uploads/".$_FILES["fileToUpload"]
["name"];
//END IMAGE UPLOADING
我尝试命名文件输入名称=“ file []”,然后使用数组上载每个文件,但是每次都会出错。...不确定其他操作。
答案 0 :(得分:0)
将attritube enctype="multipart/form-data"
添加到表单中。
有关更多信息,请参见this thread。
答案 1 :(得分:0)
通过将名称设置为图像数组,我意识到自己做对了。我需要创建一个for()循环,然后遍历该数组并将每个文件路径分配给另一个数组。然后,我将该数组中的每个值分配给一个标签。
这是HTML:
<input type="file" name="upload[]" multiple="multiple">
这是PHP:
//$files = array_filter($_FILES['upload']['name']); //something like that to be used before processing files.
// Count # of uploaded files in array
$total = count($_FILES['upload']['name']);
echo $total."<br>";
$newArray = array();
// Loop through each file
for( $i=0 ; $i < $total ; $i++ ) {
//Get the temp file path
$tmpFilePath = $_FILES['upload']['tmp_name'][$i];
//Make sure we have a file path
if ($tmpFilePath != ""){
//Setup our new file path
$newFilePath = "uploads/" . $_FILES['upload']['name'][$i];
//Upload the file into the temp dir
if(move_uploaded_file($tmpFilePath, $newFilePath)) {
//Handle other code here
}
}
}