图片上传PHP
这是我的密码图片上传PHP,php,Php,这是我的密码 <?php define ("MAX_SIZE","500"); function getExtension($str) { $i = strrpos($str,"."); if (!$i) { return ""; } $l = strlen($str) - $i; $ext = substr($str,$i+1,$l); return $ext; } $errors=
<?php
define ("MAX_SIZE","500");
function getExtension($str) {
$i = strrpos($str,".");
if (!$i) { return ""; }
$l = strlen($str) - $i;
$ext = substr($str,$i+1,$l);
return $ext;
}
$errors=0;
if(isset($_POST['Submit']))
{
$image=$_FILES['image']['name'];
if ($image)
{
$filename = stripslashes($_FILES['image']['name']);
$extension = getExtension($filename);
$extension = strtolower($extension);
if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))
{
//print error message
echo '<h1>Unknown extension!</h1>';
$errors=1;
}
else
{
$size=filesize($_FILES['image']['tmp_name']);
if ($size > MAX_SIZE*1024)
{
echo '<h1>You have exceeded the size limit!</h1>';
$errors=1;
}
$image_name=time().'.'.$extension;
$newname="user_img/".$image_name;
$copied = copy($_FILES['image']['tmp_name'], $newname);
if (!$copied)
{
echo '<h1>Copy unsuccessful!</h1>';
$errors=1;
}}}}
if(isset($_POST['Submit']) && !$errors)
{
echo "<h1>File Uploaded Successfully! Try again!</h1>";
}
这在我的本地主机上运行良好,但当我将其上传到服务器上时,它根本无法工作,并且不会显示任何错误,也不会显示不成功的消息。
问题和解决办法是什么
谢谢为了获得适当的权限,您通常需要访问要上载到的文件夹
您可以很容易地使用。检查您的脚本在主机上运行的用户是否具有写入用户\u img
目录的权限。可能存在以下问题:
- 首先确保已启用,以便在出现错误时查看错误
- 检查您的php设置:
file\u uploads
,upload\u max\u filesize
()
- 检查要写入文件的文件夹的权限
- 也可以尝试函数
这可能是权限错误,请确保您在编写图像的目录中对运行php的用户具有足够的权限。另一种可能是,您超出了PHP.ini文件中设置的最大邮政尺寸。 < P>您还可以考虑使用绝对路径到<强> USELIMIG <强>文件夹,这将减轻关于文件夹的实际相对路径的任何问题:
$newname="user_img/".$image_name;
切换到:
$newname="/path/to/www/user_img/".$image_name;
除了检查文件权限外:
我一直使用move\u upload\u file()而不是copy()
您的目标文件是“user\u img/”$image\u name-该相对目录在您的服务器和本地主机上有效吗?您可能希望转换为完全限定路径
谢谢这是权限问题。对不起,我点击错了。请编辑您的答案,以便我可以再次投票。