2016-07-18 5 views
-4

У меня есть сценарий загрузки и необходимо изменить имя файла, сначала загружаемого. Вот мой код:PHP изменить имя файла загрузки

<?php 
$ds   = DIRECTORY_SEPARATOR; 
$fileName = $_POST['articleSlug']; 
$storeFolder = '../uploads'; 

if (!empty($_FILES)) { 

    $tempFile = $_FILES['file']['tmp_name'];      

    $targetPath = dirname(__FILE__) . $ds. $storeFolder . $ds; 

    $targetFile = $targetPath. $_FILES['file']['name']; 

    move_uploaded_file($tempFile,$targetFile); 

} 
?> 

я должен использовать переменную $fileName изменить имя файла, но когда я изменить переменную $ Целевой_файл она не загружает файл больше, так что я вернулся мой код на момент работал, можете ли вы, пожалуйста, помочь мне найти, как заменить исходное имя файла, используя содержимое переменной?

спасибо

+0

Просто измените $ targetFile – rjdown

+0

И ваша проблема ...? –

+0

Вы попробовали? Или вы просто спрашиваете, чтобы это сделать и сказать, что это работает. –

ответ

0

Заменить

$ Целевой_файл = $ TargetPath. $ _FILES [ 'файл'] [ 'имя'];

в

$ внутр = конец (взрываются (, $ _FILES [ 'файл'] [ 'имя']) "");

$ targetFile = $ targetPath. имя файла . '' , $ Внутр;

+0

Спасибо, что он работает сейчас! – andreaem

1

Наиболее вероятной ошибкой является то, что при изменении $ targetFile с $ fileName вы пытаетесь записать файл в место, где у вас недостаточно прав.

Вы, вероятно, нужно сделать что-то вроде этого:

<?php 

    $ds   = DIRECTORY_SEPARATOR; 
    $fileName = $_POST['articleSlug']; 
    $storeFolder = '../uploads'; 

if (!empty($_FILES)) { 

    $tempFile = $_FILES['file']['tmp_name'];      

    $targetPath = dirname(__FILE__) . $ds. $storeFolder . $ds; 

    $targetFile = $targetPath . $fileName; 



    move_uploaded_file($tempFile,$targetFile); 

} 
?> 

Также «move_uploaded_file» выбрасывает предупреждения, когда нечто идет не так. Вы можете визуализировать эти предупреждения со следующими линиями в начале сценария:

error_reporting(E_ALL); 
ini_set('display_errors', 1); 

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

var_dump($targetPath . $fileName, $targetPath. $_FILES['file']['name']); 
Смежные вопросы