簡體   English   中英

無法將文件上傳到 php 中的 web 站點服務器

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM