Привет и извините за мой плохой английский.
Я установил xampp (все нормально). Мне нужно загрузить и удалить некоторые файлы. Я могу загрузить любой файл. Этот скрипт работает отлично. Настоящие проблемы возникают, когда я пытаюсь удалить файл, используя $_POST['archivoAEliminar']
,
Это скрипт, который я использую:
<?php
//error_reporting(0);
$target_path = "..\\imagenes\\";
$target_path = $target_path . trim($_POST['imagenAEliminar']," ");echo $target_path;
if (unlink($target_path))
{
echo "[web]Se elimino correctamente/delete successful .";
}
else
{
if (is_null($_POST['imagenAEliminar']))
{
echo "[web] Es nulo/Its null.";
}
echo "[web]Algo sucedio y no se elimino/No delete.";
}
?>
Когда я «отправляю» из Java четко, я обнаруживаю, что мой код выполняется на сервере Apache, потому что у меня есть ответ, но кажется, что путь не существует. Если я скопирую тот же путь (ответ, который сервер скажет, что не существует) непосредственно в unlink('\\imagenes\\image002.jpg')
работает и файл удаляется.
Я удалил файл .htacces и установил сервер в Windows 7. Это происходит только тогда, когда я использую $ _POST из Java в настольном приложении.
ОБНОВИТЬ
Этот код не работает для:
<?php
//error_reporting(0);
$target_path = "\\imagenes\\";
$target_path = $target_path.$_POST['imagenAEliminar'];echo $target_path;
if (unlink($target_path))
{
echo "[web]Se elimino correctamente.";
}
else
{
if (is_null($_POST['imagenAEliminar']))
{
echo "[web] Es nulo.";
}
echo "[web]Algo sucedio y no se elimino";
}
?>
В заключение! Друг нашел (в логах) причину. Ява-код, который я использую, добавляет «\ r \ n» в конце строки перед отправкой. Эхо в php не показывает этот escape-символы. Я удаляю f #%& линия, которая добавлена, и все работает отлично! Спасибо вам всем.
Это происходит, когда вы копируете и вставляете код. Как гласит мексиканская поговорка:
«EL HUEVON TRABAJA DOS VECES.»
Других решений пока нет …