2016-10-16 1 views
0

Я пытаюсь загрузить фотографии в определенную папку, а также сохранить их url в базе данных, но у меня возникает проблема с неопределенным индексом!Ошибка при загрузке изображений и хранении url в базе данных php

Это код, который используется для загрузки изображений

$time = time(); 
    $_SESSION['storeid'] = 11; 
    $target_dir = "uploads/store/products/"; 
    $target_file1 = $target_dir . basename($_FILES["productimages1"]["name"]) . $_SESSION['storeid'] . $time; 
    $target_file2 = $target_dir . basename($_FILES["productimages2"]["name"]) . $_SESSION['storeid'] . $time; 
    $target_file3 = $target_dir . basename($_FILES["productimages3"]["name"]) . $_SESSION['storeid'] . $time; 
    $uploadOk = 1; 

    $imageFileType1 = pathinfo($target_file1,PATHINFO_EXTENSION); 
    $imageFileType2 = pathinfo($target_file2,PATHINFO_EXTENSION); 
    $imageFileType3 = pathinfo($target_file3,PATHINFO_EXTENSION); 

    move_uploaded_file($_FILES["productimages1"]["tmp_name"] . $_SESSION['storeid'] . $time, $target_file1); 

    move_uploaded_file($_FILES["productimages1"]["tmp_name"] . $_SESSION['storeid'] . $time, $target_file2); 
    move_uploaded_file($_FILES["productimages1"]["tmp_name"] . $_SESSION['storeid'] . $time, $target_file3); 

    $image1=basename($_FILES["productimages1"]["name"] . $_SESSION['storeid'] . $time,".jpg"); 
    $image2=basename($_FILES["productimages2"]["name"] . $_SESSION['storeid'] . $time,".jpg"); 
    $image3=basename($_FILES["productimages3"]["name"] . $_SESSION['storeid'] . $time,".jpg"); 

и HTML является

<form action="" method="post"> 
<input type="file" name="productimages1[]" id="product1" /> 
<input type="file" name="productimages2[]" id="product1" /> 
<input type="file" name="productimages3[]" id="product1" /> 
</form> 

Можно ли смотреть на то, что случилось с ним?

ответ

0

проверить это,

<?php 
    if(isset($_POST['submit'])){ 

     $time = time(); 
     $_SESSION['storeid'] = 11; 

     $target_dir = "uploads/store/products/"; 
     $target_file1 = $target_dir . $_SESSION['storeid'] . $time.$_FILES["productimages1"]["name"]; 
     $target_file2 = $target_dir . $_SESSION['storeid'] . $time.$_FILES["productimages2"]["name"]; 
     $target_file3 = $target_dir . $_SESSION['storeid'] . $time.$_FILES["productimages3"]["name"]; 

     move_uploaded_file($_FILES["productimages1"]["tmp_name"], $target_file1); 
     move_uploaded_file($_FILES["productimages2"]["tmp_name"], $target_file2); 
     move_uploaded_file($_FILES["productimages3"]["tmp_name"], $target_file3); 

    } 
    ?> 


<form action="" method="post" enctype="multipart/form-data"> 
    <input type="file" name="productimages1" id="product1" /> 
    <input type="file" name="productimages2" id="product1" /> 
    <input type="file" name="productimages3" id="product1" /> 
    <input type="submit" value="submit" name="submit"/> 
</form> 

enctype="multipart/form-data" Добавлен в форму. Это необходимо при загрузке файлов на сервер.

+0

Еще не определен индекс! – Alexis

1
  1. Добавить enctype="multipart/form-data" в вашу форму.

    <form action="" method="post" enctype="multipart/form-data"> 
    ... 
    ... 
    </form> 
    
  2. В PHP, как ваш нятся файлы для ваших массива для нескольких загрузки, использование цикла. как:

    $time = time(); 
    $_SESSION['storeid'] = 11; 
    $target_dir = "uploads/store/products/"; 
    
    if(!empty($_FILES["productimages1"])){ 
        foreach($_FILES["productimages1"] as $image1){ 
        if(!empty($image1['tmp_name'])){ 
         $target_file1 = $target_dir . basename($image1["name"]) . $_SESSION['storeid'] . $time; 
         move_uploaded_file($image1["tmp_name"] . $_SESSION['storeid'] . $time, $target_file1); 
        } 
        } 
    } 
    
+0

Ваш код не работает с вышеуказанной формой. Проверьте имена полей ввода, productimages1 [], productimages2 [], productimages3 []. Но вы пытаетесь скомпилировать productimages1. Это не сработает. Поэтому вам также нужно настроить HTML-форму. – user3099298

Смежные вопросы