когда я использовал Mac и MAMP, команда работала нормально, но после перемещения исходного кода в Windows 10 и XAMPP теперь следующий сценарий не удаляет файл, а только перемещает копию файла внутри папки (exported_files) и переименовывает новый файл.
<?php
session_start();
error_reporting(0);
if (isset($_POST['ok']) && ($_POST['ok'] == 1))
{
//$arrayRicevuto = implode(" ",$arrayRicevuto);
if (!isset($_SESSION['countRows']) && empty($_SESSION['countRows']))
{
$_SESSION['countRows'] = $_POST['countRows'];
}
$data = date("dmY");
$filename = "EstrazioneParziale_del_" . $data;
$estensione = ".csv";
$fileOpen = fopen($filename.$estensione, "a") or die("Impossibile aprire il file");
foreach ($_POST['arrayFiltrato'] as $fields) {
fputcsv($fileOpen, $fields);
}
fclose($fileOpen);
$_SESSION['countRows']--;
if ($_SESSION['countRows'] == 0)
{
$finalData = date("h-i-s");
$directory = "exported_files/";
copy($filename.$estensione, $directory.$_SESSION['email']."_".$filename.$finalData.$estensione);
unlink('$filename.$estensione');
unset($_SESSION['countRows']);
echo $directory.$_SESSION['email']."_".$filename.$finalData.$estensione;
}
} else {
echo "Errore! ";
}
?>
Может кто-нибудь дать мне предложение?
Спасибо заранее! :)
Возможно, вы захотите потерять кавычки, поскольку это не обязательно при использовании переменных. Кроме того, переменные внутри одинарных кавычек обрабатываются как буквальные строки: unlink($filename.$estensione);. Вы также можете попробовать. Возможно, вы захотите потерять кавычки, поскольку это не обязательно при использовании переменных. Кроме того, переменные внутри одинарных кавычек обрабатываются как буквальные строки: вместо этого unlink(realpath($filename.$estensione));.
У @icecub есть это для вас, я полагаю ... двойные кавычки будут обрабатывать переменные, одинарные кавычки будут рассматривать это буквально как строку со значением $ filename. $ estensione
Как-то что-то пошло не так с моим редактированием, лол. Но вы, если все равно не работает, попробуйте unlink(realpath($filename.$estensione));
@icecub Я решил проблему с помощью realpath. Хорошее предложение !!! Большой палец вверх для вас !! Я считаю этот вопрос закрытым (как я могу отметить вопрос .. закрытым? Извините, но я новичок ^^)
Не совсем уверен, как это работает с Windows 10, но подозреваю, что может быть проблема с правами доступа к файлам. Может быть, у пользователя XAMPP нет необходимых разрешений на удаление файла, или, может быть, файл настроен только на чтение или что-то в этом роде.
нет нет я решил благодаря тебе :)
Хорошо, круто :)
Я превращу свое предложение в ответ. Вы можете принять это, и ваш вопрос будет считаться отвеченным.
ОК! Спасибо, мужик!






Первая проблема: не используйте одинарные кавычки вокруг переменных, так как переменная будет восприниматься как буквальная строка вместо того, чтобы возвращать вам ее значение. Например:
<?php
$test = "hello";
echo '$test'; // This will print $test
echo "$test"; // This will print hello
?>
В unlink (); вам вообще не нужно использовать кавычки при использовании переменной.
Иногда система не может найти местоположение файла, который вы пытаетесь удалить с помощью unlink(). В этих случаях вы можете использовать realpath ();, поскольку он вернет абсолютный путь к файлу, который вы пытаетесь удалить:
unlink(realpath($filename.$estensione));
error_reporting(0);не помог. Установите для захвата и отображения.