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