我有3个输入:
1。申请名称
2。背景图片
3。徽标照片
我从@mith那里得到了帮助。代码很棒。图像总是进入正确的文件夹。在将图像提交到文件夹后,我会调整代码以更改图像的名称。但我不知道这种情况有什么问题
$fieldname = ($key == 'image[]') ? 'image' : 'logo';
$filename = $applicationName . '_' . $fieldname . '.' .
pathinfo($upload["tmp_name"], PATHINFO_EXTENSION);
$filename
始终是徽标。我不知道为什么这种情况总是错误的。
因此,2个图像总是命名为applicationName_logo。请帮我看看。
HTML表单:
<form action="yong.php" method="POST" enctype="multipart/form-data">
<h3>App name</h3>
<input type="text" id="applicationName" name="applicationName">
<h3>Background image</h3>
<input type="file" id="image" name="image[]" multiple="multiple" accept="image/*" />
<h3>Logo image</h3>
<input type="file" id="logo" name="logo[]" multiple="multiple" accept="image/*" />
<br>
<br>
<input type="submit">
</form>
&#13;
PHP代码:
<?php
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 5000*100; //100 kb
$path = "home_dir/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
$applicationName = $_POST['applicationName'];
$sql_field_list = ['applicationName'];
$sql_value_list = [$applicationName];
foreach ($_FILES['image']['name'] as $f => $name) {
if ($_FILES['image']['error'][$f] == 4) {
continue; // Skip file if any error found
echo "Skip file if any error found";
}
if ($_FILES['image']['error'][$f] == 0) {
if ($_FILES['image']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
echo "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
echo "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
$tmp_name = $upload["tmp_name"];
$parts = explode('/', $upload['tmp_name']);
$tmpName = array_pop($parts);
$fieldname = ($key == 'image[]') ? 'image' : 'logo';
$filename = $applicationName . '_' . $fieldname . '.' . pathinfo($upload["tmp_name"], PATHINFO_EXTENSION);
}
//if(move_uploaded_file($_FILES["image"]["tmp_name"][$f], $path.$filename.png))
if(move_uploaded_file($_FILES["image"]["tmp_name"][$f], $path.'applicationName_bg/'.$filename.png))
$count++; // Number of successfully uploaded file
$message[] = "$name is uploaded";
echo "$filename is uploaded";
}
}
foreach ($_FILES['logo']['name'] as $f => $name) {
if ($_FILES['logo']['error'][$f] == 4) {
continue; // Skip file if any error found
echo "Skip file if any error found";
}
if ($_FILES['logo']['error'][$f] == 0) {
if ($_FILES['logo']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
echo "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
echo "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
$tmp_name = $upload["tmp_name"];
$parts = explode('/', $upload['tmp_name']);
$tmpName = array_pop($parts);
$fieldname = ($key == 'image[]') ? 'image' : 'logo';
$filename = $applicationName . '_' . $fieldname . '.' . pathinfo($upload["tmp_name"], PATHINFO_EXTENSION);
}
//if(move_uploaded_file($_FILES["logo"]["tmp_name"][$f], $path.$filename.png))
if(move_uploaded_file($_FILES["logo"]["tmp_name"][$f], $path.'applicationName_logo/'.$filename.png))
$count++; // Number of successfully uploaded file
$message[] = "$name is uploaded";
echo "$filename is uploaded";
}
}
}
答案 0 :(得分:1)
请尝试以下代码分别保存徽标和图像文件:
HTML:
<form action="yong.php" method="POST" enctype="multipart/form-data">
<h3>App name</h3>
<input type="text" id="applicationName" name="applicationName">
<h3>Background image</h3>
<input type="file" id="image" name="image[]" multiple="multiple" accept="image/*" />
<h3>Logo image</h3>
<input type="file" id="logo" name="logo[]" multiple="multiple" accept="image/*" />
<br>
<br>
<input type="submit">
</form>
PHP
<?php
$valid_formats = array("jpg", "png", "gif", "zip", "bmp");
$max_file_size = 5000*100; //100 kb
$path = "home_dir/"; // Upload directory
$count = 0;
if(isset($_POST) and $_SERVER['REQUEST_METHOD'] == "POST"){
// Loop $_FILES to exeicute all files
foreach ($_FILES['image']['name'] as $f => $name) {
if ($_FILES['image']['error'][$f] == 4) {
continue; // Skip file if any error found
echo "Skip file if any error found";
}
if ($_FILES['image']['error'][$f] == 0) {
if ($_FILES['image']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
echo "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
echo "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["image"]["tmp_name"][$f], $path.'applicationName_bg/'.$name))
$count++; // Number of successfully uploaded file
$message[] = "$name is uploaded";
echo "$name is uploaded";
}
}
}
foreach ($_FILES['logo']['name'] as $f => $name) {
if ($_FILES['logo']['error'][$f] == 4) {
continue; // Skip file if any error found
echo "Skip file if any error found";
}
if ($_FILES['logo']['error'][$f] == 0) {
if ($_FILES['logo']['size'][$f] > $max_file_size) {
$message[] = "$name is too large!.";
echo "$name is too large!.";
continue; // Skip large files
}
elseif( ! in_array(pathinfo($name, PATHINFO_EXTENSION), $valid_formats) ){
$message[] = "$name is not a valid format";
echo "$name is not a valid format";
continue; // Skip invalid file formats
}
else{ // No error found! Move uploaded files
if(move_uploaded_file($_FILES["logo"]["tmp_name"][$f], $path.'applicationName_logo/'.$name))
$count++; // Number of successfully uploaded file
$message[] = "$name is uploaded";
echo "$name is uploaded";
}
}
}
}