[英]Cant upload file to web site server in php
我正在使用此代碼
if(isset($_POST['upload'])) {
$file = $_FILES['file'];
$file_name = $_FILES['file']['name'];
$file_type = $_FILES['file']['type'];
$file_size = $_FILES['file']['size'];
$file_tem_loc = $_FILES['file']['tmp_name'];
$file_store = "pdf/".$file_name;
move_uploaded_file($file_tem_loc, $file_store);
}
上傳文件。它在我的電腦上工作。 我可以將 pdf 文件復制到我的目標文件夾,但在網站服務器上,此代碼不起作用,我不知道為什么。 順便說一句,我的語言不好(:
這是我不久前開發的一個腳本,效果很好。
它檢查文件大小:任何超過 1Mb 的圖像都將被拒絕,但如果您想上傳更大或更小的文件,您可以更改此設置。
該腳本還會檢查文件類型,以防萬一有人嘗試上傳潛在的惡意文件。 $extension 過去只允許使用圖像,但我為您添加了 pdf 文件,但要小心,pdf 很容易被感染,而圖像則不那么容易感染,所以我希望您的應用程序/連接通過受保護的登錄得到正確保護。
最后,腳本會根據時間重命名文件,以避免在上傳多個文件后最終發生的任何名稱沖突。
<?php
// File settings
$target_dir = "pdf/"; // Make sure you get this folder location correct, currently it is http://www.yourwebsite.com/pdf
$UploadOk = true;
$extension = array("jpeg","jpg","png","gif","pdf");
$bytes = 1024; // Change to 2048 for 2Mb or 4096 for 4Mb etc.
$KB = 1024; // Change to 2048 for 2Mb or 4096 for 4Mb etc.
$totalBytes = $bytes * $KB;
// Grab file
if (isset($_FILES['upload']['name'])) {
$total_files = count($_FILES['upload']['name']);
// Check file size
if($_FILES["upload"]["size"] > $totalBytes) {
$UploadOk = false;
echo "<script>alert('Error: File must be less than 1mb!')</script>"; // Change file size warning for larger files
echo "<script>window.history.back();</script>";
}
// Check file extension
$ext = strtolower(pathinfo($_FILES["upload"]["name"], PATHINFO_EXTENSION));
if(in_array($ext, $extension) == false) {
$UploadOk = false;
echo "<script>alert('Error: Images only!')</script>";
echo "<script>window.history.back();</script>";
}
// If checks passed, rename file and upload to directory
if ($UploadOk == true) {
$time = preg_replace('/(0)\.(\d+) (\d+)/', '$3$1$2', microtime());
$dot = ".";
$new_filename = $time.$dot.$ext;
move_uploaded_file($_FILES['upload']['tmp_name'], $target_dir . $new_filename);
}
}
?>
如果盡管目錄位置正確,您仍然無法上傳文件,如上所述,請檢查相關文件夾的所有者權限。 您可以通過使用 FTP 程序或通過 cPanel 導航到您的網站文件夾來執行此操作,然后右鍵單擊有問題的文件夾以檢查權限,755 沒問題,應該允許上傳。
我建議將這些文件添加到 MYSQL 表中,以便可以引用和檢索它們。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.