当前位置: 首页 > 知识库问答 >
问题:

PHP MySql-move_uploaded_file()问题

马承
2023-03-14

我是php新手,对此我有问题:

              public function storeUploadedImage( $image ) {


            if ( $image['error'] == UPLOAD_ERR_OK )
            {
              // Does the ShopItem object have an ID?
              if ( is_null( $this->id ) ) trigger_error( "ShopItem::storeUploadedImage(): Attempt to upload an image for an ShopItem object that does not have its ID property set.", E_USER_ERROR );

              // Delete any previous image(s) for this article
              $this->deleteImages();

              // Get and store the image filename extension
              $this->shopItemImg = strtolower( strrchr( $image['name'], '.' ) );

              // Store the image

              $tempFilename = trim( $image['tmp_name'] );

              if ( is_uploaded_file ( $tempFilename ) ) {
                if ( !( move_uploaded_file( $tempFilename, $this->getImagePath() ) ) ) trigger_error( "ShopItem::storeUploadedImage(): Couldn't move uploaded file.", E_USER_ERROR );
                if ( !( chmod( $this->getImagePath(), 0666 ) ) ) trigger_error( "ShopItem::storeUploadedImage(): Couldn't set permissions on uploaded file.", E_USER_ERROR );
              }

              // Get the image size and type
              $attrs = getimagesize ( $this->getImagePath() );
              $imageWidth = $attrs[0];
              $imageHeight = $attrs[1];
              $imageType = $attrs[2];

              // Load the image into memory
              switch ( $imageType ) {
                case IMAGETYPE_GIF:
                  $imageResource = imagecreatefromgif ( $this->getImagePath() );
                  break;
                case IMAGETYPE_JPEG:
                  $imageResource = imagecreatefromjpeg ( $this->getImagePath() );
                  break;
                case IMAGETYPE_PNG:
                  $imageResource = imagecreatefrompng ( $this->getImagePath() );
                  break;
                default:
                  trigger_error ( "ShopItem::storeUploadedImage(): Unhandled or unknown image type ($imageType)", E_USER_ERROR );
              }

              // Copy and resize the image to create the thumbnail
              $thumbHeight = intval ( $imageHeight / $imageWidth *  SHOP_THUMB_WIDTH );
              $thumbResource = imagecreatetruecolor (  SHOP_THUMB_WIDTH, $thumbHeight );
              imagecopyresampled( $thumbResource, $imageResource, 0, 0, 0, 0,  SHOP_THUMB_WIDTH, $thumbHeight, $imageWidth, $imageHeight );

              // Save the thumbnail
              switch ( $imageType ) {
                case IMAGETYPE_GIF:
                  imagegif ( $thumbResource, $this->getImagePath(  SHOP_IMG_TYPE_THUMB ) );
                  break;
                case IMAGETYPE_JPEG:
                  imagejpeg ( $thumbResource, $this->getImagePath(  SHOP_IMG_TYPE_THUMB ),  SHOP_JPEG_QUALITY );
                  break;
                case IMAGETYPE_PNG:
                  imagepng ( $thumbResource, $this->getImagePath(  SHOP_IMG_TYPE_THUMB ) );
                  break;
                default:
                  trigger_error ( "ShopItem::storeUploadedImage(): Unhandled or unknown image type ($imageType)", E_USER_ERROR );
              }

              $this->update();
            }
          }

错误:

Warning: move_uploaded_file() [<a href='function.move-uploaded-file'>function.move-uploaded-file</a>]: Filename cannot be empty in C:\wamp\www\risa\classes\shopItem.php on line 69

var_dump($_FILES):
array (size=1)
  'image' => 
    array (size=5)
      'name' => string '55.jpg' (length=6)
      'type' => string 'image/jpeg' (length=10)
      'tmp_name' => string 'C:\wamp\tmp\php9C26.tmp' (length=23)
      'error' => int 0
      'size' => int 175289

非常感谢。

共有1个答案

涂飞航
2023-03-14

您可以使用移动上传的文件($tempFilename,$this)-

 类似资料:
  • 问题内容: 我使用以下代码,它已成功将文件上传到本地计算机上。它在我的本地计算机上显示“成功上传”。 但是,当我在在线服务器上使用此代码时,它不会上传文件,而只会显示消息“未上传”。 我怎么知道问题出在哪里,如何将实际问题显示给用户? 问题答案: 检查Web服务器是否有权写入“ images /”目录

  • 我正在使用自定义表单在wordpress上传图片,但move_uploaded_file显示警告消息。 警告:move_uploaded_file(user-images/Hydragonas.jpg)[function.moveuploaded-file]:无法打开流:在第40行的/home/capoorha/public_html/kkn/wp-content/themes/kkn/edit-

  • 问题内容: 我一直在慢慢学习PHP,并找到了有关其他开发人员发布的主题和解决方案的一系列信息。我正在尝试让Android应用程序通过HTTP发布将文件上传到PHP服务器。但是,尝试在PHP中写入文件时,服务器端无法正常工作。 这是PHP代码: 我已经从检查客户端的鲨鱼中知道HTTP帖子已正确发送,并且我已确保将文件写入的目录具有正确的权限,并且php安全模式已设置为off。 apache2 err

  • 以下代码在我的localhost上运行完美,但在我的实时服务器上显示了以下错误 警告:move_uploaded_file(.../uploads/76948893.jpeg):无法打开流:没有此类文件或目录 警告:move_uploaded_file():无法将'/tmp/phppxvRs8'移动到'…/上传/76948893.jpeg' 它所做的很简单,它获取来自 html 表单的数组 [“p

  • 我想上传一张图片。每次我试图上传图片时,我都会收到下面的错误信息。 我已经设置了读取权限 警告:move_uploaded_file(上载/1000020170620022532img3.png):无法打开流: /Applications/XAMPP/xamppfiles/htdocs/social-network-master/profile.php第41行的权限被拒绝 警告:move_uplo

  • 我正在为我的站点创建一个配置文件图片上载功能,但由于某种原因,不想运行。 我尝试了多个论坛,测试了所有可能的不同方法,但没有运气。 因此,首先,我检查所选文件是否有有效的扩展名,如果有,它将用microtime散列文件临时名(出于安全考虑)。然后,我将扩展连接到结尾,中间有一个句号,即输出将是。 然后通过将文件变量连接到目录的末尾来创建一个文件路径变量。 然后,通过传递和变量(就像您应该做的那样)