Я делаю приложение, которое позволяет пользователям загружать файл в каталог через PHP.
У меня проблемы, потому что доза не позволяет мне переписывать файлы с тем же именем. Например, у меня есть файл text.php, и я его загружаю, теперь, когда я возвращаюсь и меняю содержимое файла text.php, и я загружаю его снова на сервер, у меня все еще есть версия без изменений. Однако, если я загружаю другой файл, он работает. Поэтому я просто не могу перезаписать файлы.
if ($_POST["greg"]=='true'){ // Set local PHP vars from the POST vars sent from our form using the array // of data that the $_FILES global variable contains for this uploaded file $fileName = $_FILES["file1"]["name"]; // The file name $fileTmpLoc = $_FILES["file1"]["tmp_name"]; // File in the PHP tmp folder $fileType = $_FILES["file1"]["type"]; // The type of file it is $fileSize = $_FILES["file1"]["size"]; // File size in bytes $fileErrorMsg = $_FILES["file1"]["error"]; // 0 for false... and 1 for true // Specific Error Handling if you need to run error checking if (!$fileTmpLoc) { // if file not chosen echo "ERROR: Please browse for a file before clicking the upload button."; exit(); } else if($fileSize > 90000000000000) { // if file is larger than we want to allow echo "ERROR: Your file was larger than 50kb in file size."; unlink($fileTmpLoc); exit(); } else if (!preg_match("/.(doc|docx|xls)$/i", $fileName) ) { // This condition is only if you wish to allow uploading of specific file types echo "ERROR: Your file is not the right format contact the master of the page for clarification."; unlink($fileTmpLoc); exit(); } // Place it into your "uploads" folder mow using the move_uploaded_file() function move_uploaded_file($fileTmpLoc, "documenti/$fileName"); // Check to make sure the uploaded file is in place where you want it if (!file_exists("documenti/$fileName")) { echo "ERROR: File not uploaded<br /><br />"; echo "Check folder permissions on the target uploads folder is 0755 or looser.<br /><br />"; echo "Check that your php.ini settings are set to allow over 2 MB files, they are 2MB by default."; exit(); } // Display things to the page so you can see what is happening for testing purposes echo "The file named <strong>$fileName</strong> uploaded successfuly.<br /><br />"; echo "It is <strong>$fileSize</strong> bytes in size.<br /><br />"; echo "It is a <strong>$fileType</strong> type of file.<br /><br />"; echo "The Error Message output for this upload is: <br />$fileErrorMsg"; }
Как я могу изменить этот код, чтобы при загрузке файла с тем же именем он перезаписывает существующий файл?
Попробуйте (поставьте его перед загрузкой файла)
//checking if file exsists if(file_exists("documenti/$fileName")) unlink("documenti/$fileName"); //Place it into your "uploads" folder mow using the move_uploaded_file() function move_uploaded_file($fileTmpLoc, "documenti/$fileName");
if (file_exists("documenti/$fileName")) { unlink("documenti/$fileName"); echo "<font face='Verdana' size='2' >Last Uploaded File has been removed from uploads folder<br>back to uploadform agian and upload your file<br>";// now your file which uploaded before was deleted from uploads folder you can open it and check if it removed or not , so no you should go back to uploadform again and import your file which will uploaded correctly echo "<font face='Verdana' size='2' ><BR><BR><BR><a href='upform.php'>Back to upform</a><BR>"; }
Может быть, скрипт не имеет права перезаписывать? Попробуйте изменить каталог на 777 и повторите тест. Если он работает, вы можете найти нужное вам значение
Пробовали ли вы проверить, существует ли файл и удалять его, если он перемещает временный файл в постоянное хранилище?