我使用以下脚本将文件从网站上传到服务器
<?php if ((isset($_POST["enviado"])) && ($_POST["enviado"]=="form1")){
$length = 10;
$randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
$prefijo = $randomString;
$nombre_archivo = $_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'],"platos/".$prefijo.$nombre_archivo);
?>
所选文件将上传到文件夹platos
。
在另一个网站上,我使用相同的脚本,唯一的更改是文件夹的名称,但不会上传所选文件。
这是第二个网站上使用的脚本:
<?php if ((isset($_POST["enviado"])) && ($_POST["enviado"]=="form1")){
$length = 10;
$randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
$prefijo = $randomString;
$nombre_archivo = $_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'],"docs/".$prefijo.$nombre_archivo);
?>
我无法检测到错误...
已编辑,完整的代码在这里:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Subir Factura PFD</title>
</head>
<body>
<?php if ((isset($_POST["enviado"])) && ($_POST["enviado"]=="form1")){
$length = 10;
$randomString = substr(str_shuffle("0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ"), 0, $length);
$prefijo = $randomString;
$nombre_archivo = $_FILES['userfile']['name'];
move_uploaded_file($_FILES['userfile']['tmp_name'],"docs/".$prefijo.$nombre_archivo);
?>
<script>
opener.document.form1.pdf_factura.value="<?php echo $prefijo.$nombre_archivo;?>";
self.close();
</script>
<?php
}
else {?>
<form id="form1" name="form1" method="post" action="subirPDF.php" data-ajax="false" enctype="multipart/form-data">
<p>
<input name="userfile" type="file" />
</p>
<p>
<input type="submit" name="button" id="button" value="Subir imagen" />
<input type="hidden" name="enviado" value="form1" />
</p>
</form>
<?php }?>
</body>
</html>
答案 0 :(得分:1)
你需要检查&#34; upload_max_filesize&#34;和&#34; post_max_size&#34;你的php.ini文件中的参数。
这些应该大于您尝试上传的文件的大小。
; Maximum allowed size for uploaded files.
upload_max_filesize = 2M
; Must be greater than or equal to upload_max_filesize
post_max_size = 2M
修改php.ini文件后,需要重启HTTP服务器以使用新配置。
如果上述参数正常,则检查目录权限和所有者。
答案 1 :(得分:1)
如果你在Windows机器上运行它:我遇到了同样的问题。由于(奇怪的)文件夹权限,move_uploaded_file()
没有为我工作。
我使用PHP函数copy()
而不是move_uploaded_file()
。
希望有所帮助
答案 2 :(得分:1)
检查上传文件的目录的权限:
尝试做:
chmod -R 777 docs
注意:docs目录必须是可写的,以便可以在此目录中添加文件。