Tworzę aplikację, która umożliwia użytkownikom przesyłanie plików do katalogu za pośrednictwem PHP.PHP Przesyłanie i nadpisywanie pliku o tej samej nazwie
Mam problemy, ponieważ dawka nie pozwala mi nadpisywać plików o tej samej nazwie. Np. Mam plik o nazwie text.php i przesyłam go, teraz gdy wracam i zmieniam zawartość pliku text.php i ponownie go przesyłam na serwer, wciąż mam wersję bez zmian. Jednak jeśli prześlę inny plik, działa. Więc po prostu nie mogę zastąpić plików.
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";
}
Jak mogę zmienić ten kod tak, że kiedy przesłać plik o tej samej nazwie nadpisuje istniejący plik?
Czy na pewno robi się nadpisane, z kodem średnia zachowanie na serwerze LAMP-podobnym polega na tym, że plik zostanie nadpisany. TAK, upewnij się, że CHMOD jest 777 –
czy to robię w php.ini – Gunnit
Nie, po prostu przejdź do plików za pomocą FTP i kliknij prawym przyciskiem i ustaw filerights na maksimum (co jest 777) –