2015-05-19 4 views
1

Я хочу загрузить файл с моего приложения для Android. В первый раз это происходит успешно, но во второй раз, если я хочу заменить файл, он ничего не сделает.загрузил (а) файл с таким же именем

<?php 
    $file_path = "usuario/"; 

    $file_path = $file_path . basename($_FILES['uploaded_imagen']['name']); 

    if(file_exists($file_path)) 
    { 
     unlink($file_path); 
    } 

    if(move_uploaded_file($_FILES['uploaded_imagen']['tmp_name'], $file_path)) { 
      echo "success1"; 
    } else{ 
      echo "fail1"; 
    } 
?> 
+0

Это должно сработать. Он работает, когда вы пытаетесь использовать его в браузере? Попытайтесь устранить как можно больше возможных причин. – Keelan

+0

, если вы не хотите заменять изображение, почему вы его удаляете? «Я ужинал на этой тарелке, я поел ужин, а теперь ужин ушел. Почему?». –

+1

@MarcB Я думаю, что он означает «но во второй раз (если я хочу, например, заменить старый файл), он ничего не делает». – Keelan

ответ

0

вы могли бы попытаться изменить права доступа к файлу перед удалением существующего файла (если WWW-пользователь может сделать это)

<?php 
$basename = basename($_FILES['uploaded_imagen']['name']); 
//todo: (play safe) $basename = hash('sha256', $basename) . '.EXT'; 
$target_file = 'usuario/' . $basename; 
if(file_exists($target_file)) 
{ 
    chmod($target_file,0755); //change perms if possible 
    unlink($target_file); //remove the file 
} 
if(move_uploaded_file($_FILES['uploaded_imagen']['tmp_name'], $target_file)) 
{ 
    echo "<P>FILE UPLOADED TO: $target_file</P>"; 
} 
else 
{ 
    echo "<P>MOVE UPLOADED FILE FAILED!</P>"; 
    print_r(error_get_last()); 
} 

альтернативно - просто изменить права доступа к целевой директории (после того, как вы узнаете, как работает ваш www-пользователь на вашем сервере:

ps aux | egrep '(apache|httpd)' 

chown www-user:www-group '/path/to/files' 
chmod 0700 '/path/to/files' 
+0

Привет, моя проблема в том, что если я запустил ваш код с моим приложением, это не сработает, но в браузере это работает ... или, может быть, если я вручную изменю разрешения в моем каталоге, он будет работать ... Как это возможно? – Bruno

+0

Спасибо всем, ребята, сейчас работает, я не знаю, почему .. может быть, проблемы с подключением или что-то в этом роде ... – Bruno

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