Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/374.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 以数组形式上载图像_Javascript_Php_Jquery_Sql_Image Uploading - Fatal编程技术网

Javascript 以数组形式上载图像

Javascript 以数组形式上载图像,javascript,php,jquery,sql,image-uploading,Javascript,Php,Jquery,Sql,Image Uploading,我正在尝试将多个图像上载到一个文件夹,并且工作正常。当我试图在数据库中存储图像的名称时,我遇到了一个问题。如果我上传的话,只有一个是有效的。如果我上传多个,我的数据库中只会有一个名字 如何将图像标题数组上传到我的数据库 代码如下: <div id="maindiv"> <div id="formdiv"> <h4>Upload Image for </h4> <form enctype="multipart/form-data

我正在尝试将多个图像上载到一个文件夹,并且工作正常。当我试图在数据库中存储图像的名称时,我遇到了一个问题。如果我上传的话,只有一个是有效的。如果我上传多个,我的数据库中只会有一个名字

如何将图像标题数组上传到我的数据库

代码如下:

<div id="maindiv">
<div id="formdiv">
    <h4>Upload Image for </h4>
    <form enctype="multipart/form-data" action="" method="post">
        <p class="alert alert-info">Only JPEG,PNG,JPG Type Image Uploaded. Image Size Should Be Less Than 100KB.</p>
        <hr/>
        <div id="filediv"><input name="file[]" type="file" id="file"/></div><br/>
        <input type="button" id="add_more" class="upload" value="Add More Files"/>
        <input type="submit" value="Upload File" name="add_images" id="upload" class="upload"/>
    </form>
</div>

上载的图像

仅上载JPEG、PNG、JPG类型的图像。图像大小应小于100KB



这是我的php:

if (isset($_POST['add_images'])) {
$j = 0; 
$target_path = "images/";
for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
    $validextensions = array("jpeg", "jpg", "png");  
    $ext = explode('.', basename($_FILES['file']['name'][$i]));//store extensions in the variable
    $name_of_img = basename($_FILES['file']['name'][$i]);
    $target_path = $target_path . $name_of_img;
    $j = $j + 1;
      if (($_FILES["file"]["size"][$i] < 1000000) 
            && in_array($file_extension, $validextensions)) {
        if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {
            echo $j. ').<span id="noerror">Image uploaded successfully!.</span><br/><br/>';
            print_r($name_of_img);
            $query = "UPDATE post SET ";   
            $query .= "images = '{$name_of_imgs}' ";
            $query .= "WHERE post_id = {$the_post_id}";    
            $update_cruise_img = sqlsrv_query($con, $query);  
        } else {
            echo $j. ').<span id="error">please try again!.</span><br/><br/>';
        }
    } else {//if file size and file type was incorrect.
        echo $j. ').<span id="error">Wrong file Size or Type</span><br/><br/>';
    }
}
 }
if(isset($\u POST['add\u images'])){
$j=0;
$target_path=“images/”;
对于($i=0;$i
; 打印(img的名称); $query=“更新邮件集”; $query.=“图像=”{$name\u of_imgs}'; $query.=“WHERE post_id={$the_post_id}”; $update\u cruise\u img=sqlsrv\u query($con,$query); }否则{ 回声$j.)。请重试!

; } }else{//如果文件大小和文件类型不正确。 echo$j.)。错误的文件大小或类型

; } } }
我尝试创建这样的数组
$name\u of\u imgs=json\u encode($\u POST['file']);

但不工作

您好,您已经在上载文件中运行了更新查询。请确保此单文件中的\u post \u id可能是单文件名中的更新记录。

您需要更新
for
循环的
外的
post

if (isset($_POST['add_images'])) {
  $j = 0; 
  $name_of_imgs = [];

  for ($i = 0; $i < count($_FILES['file']['name']); $i++) {
      $validextensions = array("jpeg", "jpg", "png");  
      $ext = explode('.', basename($_FILES['file']['name'][$i]));//store extensions in the variable
      $name_of_img = basename($_FILES['file']['name'][$i]);

      // define target path here so that it won't concat the last value 
      $target_path = "images/" . $name_of_img;

      $j = $j + 1;
      if (($_FILES["file"]["size"][$i] < 1000000) && in_array($file_extension, $validextensions)) {
          if (move_uploaded_file($_FILES['file']['tmp_name'][$i], $target_path)) {
             echo $j. ').<span id="noerror">Image uploaded successfully!.</span><br/><br/>';

             $name_of_imgs[] = $name_of_img;
          } else {
              echo $j. ').<span id="error">please try again!.</span><br/><br/>';
          }
      } else {//if file size and file type was incorrect.
          echo $j. ').<span id="error">Wrong file Size or Type</span><br/><br/>';
      }
  }

  // update here
  $query = "UPDATE post SET ";   
  $query .= "images = '" . implode(',', $name_of_imgs) . "' ";
  $query .= "WHERE post_id = {$the_post_id}";    
  $update_cruise_img = sqlsrv_query($con, $query);  

}
if(isset($\u POST['add\u images'])){
$j=0;
$name_of_imgs=[];
对于($i=0;$i
; $name\u of_img[]=$name\u of_img; }否则{ 回声$j.)。请重试!

; } }else{//如果文件大小和文件类型不正确。 echo$j.)。错误的文件大小或类型

; } } //在此更新 $query=“更新邮件集”; $query.=“images=”。内爆(“,”,$name\u of\u imgs)。“; $query.=“WHERE post_id={$the_post_id}”; $update\u cruise\u img=sqlsrv\u query($con,$query); }

<>您可以考虑为图像创建另一个表。< /P> ID是可以的。我可以将图像上传到文件夹并存储在数据库中。但如果我上传他们在文件夹中创建的多个图像,但只在db中存储一个图像,我想在db中存储所有图像,因为arrayNo仍在这样做。。这段代码刚刚更改了我文件夹中图像的名称,它在数据库中只保存了最后一张图像的名称,您可以将其放入
print\r($name\u of\u imgs)在循环之后?因此,您可以查看是否所有图像都在imgs的
$name\u中。。我也打印了\u r和我的查询,就像UPDATEpost SET images=''一样,您可以在那里尝试一下吗。我在循环外部删除了
$target\u path
的初始值。否仍然相同