PHP: как я копирую временную загрузку файла на несколько мест?

как я могу скопировать два раза тот же файл? Я пытаюсь сделать что-то вроде этого:

                copy($file['tmp_name'], $folder."1.jpg");
            copy($file['tmp_name'], $folder."2.jpg");
            copy($file['tmp_name'], $folder."3.jpg");

И сколько действительно работает временно время, файлы имеют, прежде чем оно будет уничтожено сервером?

Я пытаюсь использовать move_uploaded_file также, но я не могу заставить его работать. Я хочу генерировать 2 ползунка из загруженного файла.

Некоторая справка?

Спасибо,

20
задан Kristian 23 May 2012 в 18:17
поделиться

4 ответа

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

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


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

if (move_uploaded_file($file['tmp_name'], $folder . '1.jpg')) {
    copy($folder . '1.jpg', $folder . '2.jpg');
    copy($folder . '1.jpg', $folder . '3.jpg');
}

Это позволит вам получить проверки, предоставленные move_uploaded_file ...


Если это не сработает, затем убедитесь, что:

  • $ folder содержит то, что вы хотите, включая окончательный /
  • Этот $ file ['tmp_name'] также содержит то, что вы хотите (я предполагаю, что это какая-то копия $ _ FILES - убедитесь, что копия $ _ FILES в $ file сделана правильно)
35
ответ дан 29 November 2019 в 23:44
поделиться

У меня нет прямого ответа на ваш вопрос, но как насчет этого обходного пути?

copy($file['tmp_name'], $folder."1.jpg");
copy($folder."1.jpg"  , $folder."2.jpg");
copy($folder."1.jpg"  , $folder."3.jpg");
2
ответ дан 29 November 2019 в 23:44
поделиться

Спасибо, дружище, ты дал мне свет.

Я сделал что-то вроде этого:

    $objUpload = new Upload();
    $filename = $objUpload->uploadFile($newFile,$folder); 
// returns a string    
    $objUpload->makeThumb($filename,$folder,"thumbs",139); 
// makes a 139px thumbnail from the original file uploaded on the first step
    $objUpload->makeThumb($filename,$folder,"mini",75); 
// makes another thumb from the same file

Используя move_ulploaded_file и copy, мы можем создать только один большой палец. :)

1
ответ дан 29 November 2019 в 23:44
поделиться

Почему не работает move_uploaded_file()? Вы пытаетесь использовать его дважды? Вы не можете этого сделать, она перемещает его, поэтому второй раз не сработает.

Я бы просто использовал move_uploaded_file() один раз, а затем сделал вторую копию из того места, куда вы только что ее переместили:

move_uploaded_file($uploaded, $destination);
copy($destination, $destination2);
4
ответ дан 29 November 2019 в 23:44
поделиться
Другие вопросы по тегам:

Похожие вопросы: