javascript - 如何上传照片但不同的文件夹?

标签 javascript php html ajax

我有这个代码

<div class="item1">
    <form action="" method="post" enctype="multipart/form-data">

        <label>White</label>
        <input type="file" name="files[]" multiple="multiple" accept="image/*">


        <label>Black</label>
        <input type="file" name="files[]" multiple="multiple" accept="image/*">


        <label>Red</label>
        <input type="file" name="files[]" multiple="multiple" accept="image/*">

        <input type="submit" value="Upload">

    </form>
</div>

我想要这样的php,但我不知道如何设置

$namewhite = $_FILES['photoimg']['name'][white];
$sizewhite = $_FILES['photoimg']['size'][white];

$nameblack = $_FILES['photoimg']['name'][black];
$sizeblack = $_FILES['photoimg']['size'][black];

$namered = $_FILES['photoimg']['name'][red];
$sizered = $_FILES['photoimg']['size'][red];


$path1 = "white/";
$path2 = "black/";
$path3 = "red/";

if(move_uploaded_file($tmp, $path1.$actual_image_name1))
if(move_uploaded_file($tmp, $path2.$actual_image_name2))
if(move_uploaded_file($tmp, $path3.$actual_image_name3))

$query = "INSERT INTO upload_image (id_item, color, url)VALUES('$id_item', '$color', '$url')";
$result8 = $mysqli->query($query);

因此,如果我在 red 上传图像,图像将保存在 red 文件夹中。如果在白色上传,将保存在白色文件夹中。我不想分开,我想使用一个按钮,因为该图像将根据数据项保存。并且数据将存储在MySQL中,依赖于颜色。因为如果我使用 ($i = 0; $i < count ($_FILES['files']['name']); $i++)我不明白如何按颜色区分它们。

如果我们想象一下,我想加入NIKIPredator鞋的照片,那么就有黑、红、白三种颜色。所以我上传照片但图像与存储分开。可以吗?

<小时/>

已编辑我像这样使用 php

<小时/>
<?php

if (isset($_POST['submit'])){

for($i=0;$i<4;$i++){
    echo "<b>File".($i+1).".</b><br>";  
    if ((($_FILES["userfile"]["type"][$i] == "image/gif")
    || ($_FILES["userfile"]["type"][$i] == "image/jpeg")
    || ($_FILES["userfile"]["type"][$i] == "image/pjpeg"))
    && ($_FILES["userfile"]["size"][$i] < 100000))
      {
          if ($_FILES["userfile"]["error"][$i] > 0)
            {
              echo "File Error :  " . $_FILES["userfile"]["error"][$i] . "<br />";
            }else {

              if (file_exists("images/".$_FILES["userfile"]["name"][$i]))
                {
                   echo "<b>".$_FILES["userfile"]["name"][$i] . " already exists. </b>";
                }else
                {
                   move_uploaded_file($_FILES["userfile"]["tmp_name"][$i],"images/". $_FILES["userfile"]["name"][$i]);
                   echo "Stored in: " . "images/" . $_FILES["userfile"]["name"][$i]."<br />";
                   ?>
                     Uploaded File:<br>
                     <img src="images/<?php echo $_FILES["userfile"]["name"][$i]; ?>"  width="100"
                      height="100" alt="Image path Invalid" >
                  <?php
               }
            }
          }else
          {
           echo "Invalid file detail<br> file type ::".$_FILES["userfile"]["type"][$i]." , file size::: ".$_FILES["userfile"]["size"][$i];
        }
        echo "<br>";
  }
}else{   
    echo "File details not avaliable.";
}

?>

像这样的 HTML

  <form action="multiple_file_upload.php" method="post" onSubmit="return validate()"
  enctype="multipart/form-data"  >
    <table align="center"  >
      <tr>
        <td><label for="file1">File 1:</label></td>
        <td><input name="userfile[]" type="file"  id="file" /></td>
      </tr>
      <tr>
        <td><label for="file2">File 2:</label></td>
        <td><input name="userfile[]" type="file" /></td>
      </tr>
      <tr>
        <td><label for="fil3">File 3:</label></td>
        <td><input name="userfile[]" type="file" /></td>
      </tr>
      <tr>
        <td><label for="file4">File 4:</label></td>
        <td><input name="userfile[]" type="file" /></td>
      </tr>   
      <tr>
        <td></td>
        <td><input type="submit" name="submit" value="Submit" /></td>
      </tr>
    <table>
 </form>

最佳答案

为此,我们需要区分输入

<div class="item1">
    <form action="" method="post" enctype="multipart/form-data">

        <label>White</label>
        <!-- Changed name to 'white' -->
        <input type="file" name="white[]" multiple="multiple" accept="image/*">


        <label>Black</label>
        <!-- Changed name to 'black' -->
        <input type="file" name="black[]" multiple="multiple" accept="image/*">


        <label>Red</label>
        <!-- Changed name to 'red' -->
        <input type="file" name="red[]" multiple="multiple" accept="image/*">

        <input type="submit" value="Upload">

    </form>
</div>

如果用户通过 white input 上传,$_FILES['white'], $_FILES['white' ]['name']$_FILES['white']['size'] 将被初始化。

我们可以转出以下伪代码:

$namewhite = $_FILES['photoimg']['name'][white];
$sizewhite = $_FILES['photoimg']['size'][white];

$nameblack = $_FILES['photoimg']['name'][black];
$sizeblack = $_FILES['photoimg']['size'][black];

$namered = $_FILES['photoimg']['name'][red];
$sizered = $_FILES['photoimg']['size'][red];

进入:

if (isset($_FILES['white'])) {
    $namewhite = $_FILES['white']['name'];
    $sizewhite = $_FILES['white']['size'];
}

if (isset($_FILES['black'])) {
    $nameblack = $_FILES['black']['name'];
    $sizeblack = $_FILES['black']['size'];
}

if (isset($_FILES['red'])) {
    $redblack = $_FILES['red']['name'];
    $redblack = $_FILES['red']['size'];
}

我将让您了解如何将各种文件保存在各自的目录中。只需要小心,确保在使用变量之前已经定义了它们。

我还没有测试过上面的代码。如有错误,敬请谅解。

关于javascript - 如何上传照片但不同的文件夹?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35167261/

相关文章:

javascript - $scope.$watch 使用 Angular 和 Ionic/Cordova 的 div 标签

javascript - 使用 JavaScript 从文本文件中提取电子邮件地址

javascript - WordPress 在脚本页面的 url 中添加一个数字

php - 当sql表中不存在日期时,在php数组中存储零

javascript - 依赖下拉列表

javascript - chrome 设置的不透明度未按预期一致渲染

javascript - JS 表单验证不起作用

javascript - Parse SDK for javascript 如何发送 ping 到解析服务器以验证 Web 客户端和服务器之间的连接

javascript - php代码中的弹出窗口

php - Wordpress Loop - 图像翻转