Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/280.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
图片上传PHP_Php - Fatal编程技术网

图片上传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-该相对目录在您的服务器和本地主机上有效吗?您可能希望转换为完全限定路径

    • 谢谢这是权限问题。对不起,我点击错了。请编辑您的答案,以便我可以再次投票。