2016-01-20 1 views
2

Теперь я выполняю операцию загрузки изображения, перетаскивая изображение в поле, и я успешно загрузил его в пункт назначения. Теперь мне нужно загрузить одно и то же изображение в несколько папок, перетаскивая изображение в поле, изображение должно быть вставлено в несколько папок. Проблема возникает, когда я пытаюсь загрузить одно и то же изображение в нескольких папках, изображение вставлено в первую папку, а не в другие. Я приложил код ниже.Перетащите изображение и загрузите его в несколько директорий

function uploadimage() { 
    $headerimage=array(); 
    if (!empty($_FILES)) { 
     $headerimage[0] = 'uploadimages/post_ads'."/".$_FILES['file']['name']; 
     echo move_uploaded_file($_FILES['file']['tmp_name'],$headerimage[0]); 
     $headerimage[1] = 'uploadimages/latestimages'."/".$_FILES['file']['name']; 
     echo move_uploaded_file($_FILES['file']['tmp_name'],$headerimage[1]); 
     $headerimage[2] = 'uploadimages/listimages'."/".$_FILES['file']['name']; 
     echo move_uploaded_file($_FILES['file']['tmp_name'],$headerimage[2]); 
     $headerimage[3] = 'uploadimages/photoimages'."/".$_FILES['file']['name']; 
     //$headerpath = 'uploadimages/photoimages'."/".$_FILES['file']['name']; 
     echo move_uploaded_file($_FILES['file']['tmp_name'],$headerimage[3]); 
     $headerimage[4] = 'uploadimages/slideimages'."/".$_FILES['file']['name']; 
     //$headerpath = 'uploadimages/slideimages'."/".$_FILES['file']['name']; 
     echo move_uploaded_file($_FILES['file']['tmp_name'],$headerimage[4]); 
     print_r($headerimage); 
     $_SESSION['upload_images'][]=$headerimage; 
    } 
} 

В post_ads папке изображение вставляется, но и в других папках нет. Может ли кто-нибудь из вас предложить мне возможное решение?

ответ

1

Файл move_uploaded_file будет перемещать файл, а не копировать его, что означает, что он будет работать только один раз.

Если вы используете копию, то не должно быть никаких ограничений на количество копий времени: файл временного файла, созданный при загрузке, будет уничтожен только в конце выполнения вашего скрипта (кроме вы перемещаете/удаляете его раньше, конечно)

По-прежнему, возможно, решение было бы сначала использовать move_uploaded_file, а затем скопировать? Немного похоже, что, я полагаю:

if (move_uploaded_file($_FILES['file']['tmp_name'],$headerimage[1])) { 
    copy($headerimage[1], $headerimage[2]); 
    copy($headerimage[1], $headerimage[3]); 
    copy($headerimage[1], $headerimage[4]); 
} 
0

Есть некоторые хорошие библиотеки PHP для обработки загрузки. Я использую http://www.verot.net/php_class_upload.htm, это упрощает вашу работу. Вы можете загружать файлы в несколько папок, то нравится:

include('class.upload.php'); 
//-------------------------------------- 
$upload_handler = new Upload($_FILES['file']); 
if ($upload_handler->uploaded) 
{ 
$new name = time().rand(10000,99999); 
//---------------------------------------- 
$upload_handler->image_convert = 'jpg'; 
$upload_handler->jpeg_quality = 70; 
$upload_handler->image_background_color = '#FFFFFF'; 
$upload_handler->image_resize = true; 
$upload_handler->file_new_name_body = $new name; 
$upload_handler->image_ratio_fill = true; 
$upload_handler->image_ratio_no_zoom_in = true; 
$upload_handler->image_x = 900; 
$upload_handler->image_y = 700; 
$upload_handler->Process('folder_path_1'); 
//----------------------------------------- 
$upload_handler->image_convert = 'jpg'; 
$upload_handler->jpeg_quality = 70; 
$upload_handler->image_background_color = '#FFFFFF'; 
$upload_handler->image_resize = true; 
$upload_handler->file_new_name_body = $new name; 
$upload_handler->image_ratio_fill = true; 
$upload_handler->image_ratio_no_zoom_in = true; 
$upload_handler->image_x = 150; 
$upload_handler->image_y = 150; 
$upload_handler->Process('folder_path_2'); 
//-----------------------------------------  

} 

Таким образом, вы можете изменить частоты дискретизации и так далее, а затем вы вызываете процесс для разных папок, сколько раз вы хотите.

0

Благодарим за предложение. Я нашел для них точный и простой способ. Я приложил код ниже

function uploadimage() 

{ 

if (!empty($_FILES)) { 



     $headerimage= 'uploadimages/featuredimages'."/".$_FILES['file']['name']; 
     $headerimage1= 'uploadimages/latestimages'."/".$_FILES['file']['name']; 
     $headerimage2 = 'uploadimages/listimages'."/".$_FILES['file']['name']; 
     $headerimage3 = 'uploadimages/photoimages'."/".$_FILES['file']['name']; 
     $headerimage4 = 'uploadimages/slideimages'."/".$_FILES['file']['name']; 
     $headerimage5 = 'uploadimages/galleryimages'."/".$_FILES['file']['name']; 


      move_uploaded_file($_FILES['file']['tmp_name'],$headerimage); 
      copy($headerimage, $headerimage1); 
      copy($headerimage1, $headerimage2); 
      copy($headerimage1, $headerimage3); 
      copy($headerimage1,$headerimage4); 
      copy($headerimage1,$headerimage5); 



    $_SESSION['upload_images'][]=$headerimage1; 

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