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

将上传的图像保存在不同大小的服务器文件夹中

何玉韵
2023-03-14

这里是我的代码,在那里我已经尝试了几个小时,将上传的图像保存在不同大小的服务器文件夹中。但是,图像没有被保存,并且无法得到它出错的地方。以前,我使用二进制代码编写,如下面的第二个代码部分所示,通过从移动端以某种方式带来二进制数据(图片是从相机中获取的,并从移动端即时发送)。但随着数据的增加。我决定使用甚至上传图像文件与多部分类型的文件上传从我的移动端。

<?php

$imagefile = $_FILES["uploadphoto1"]["name"];
$errors=0;
$uploadPath  = __DIR__."/contents/uploads";
define ("MAX_SIZE","4000");

$imagename = "testingimage";

if($imagefile)
{
    $filename = stripslashes($_FILES['uploadphoto1']['name']);
    $extension = getExtension($filename);
    $extension = strtolower($extension);

if (($extension != "jpg") && ($extension != "jpeg") && ($extension != "png") && ($extension != "gif"))
    {
        echo ' Unknown Image extension ';
        $errors=1;
    }
    else
    {

        $file1 = $_FILES['uploadphoto1']['tmp_name'];

        thumbnail_image($file1, "640", "480",$uploadPath.$imagename);
        thumbnail_image($file1, "480", "340",$uploadPath.$imagename."_preview");

    }
}else{
    echo "No file is inserted>>>>>>>>>";
}

function thumbnail_image($original_file_path, $new_width, $new_height, $save_path="")
{
    $imgInfo = getimagesize($original_file_path);
    $imgExtension = "";

    switch ($imgInfo[2])
    {
        case 1:
            $imgExtension = '.gif';
            break;

        case 2:
            $imgExtension = '.jpg';
            break;

        case 3:
            $imgExtension = '.png';
            break;
    }

    if ($save_path=="") $save_path = "thumbnail".$imgExtension ;

    // Get new dimensions
    list($width, $height) = getimagesize($original_file_path);

    // Resample
    $imageResample = imagecreatetruecolor($new_width, $new_height);

    if ( $imgExtension == ".jpg" )
    {
        $image = imagecreatefromjpeg($original_file_path);
    }
    else if ( $imgExtension == ".gif" )
    {
        $image = imagecreatefromgif($original_file_path);
    }
    else if ( $imgExtension == ".png" )
    {
        $image = imagecreatefrompng($original_file_path);
    }

    imagecopyresampled($imageResample, $image, 0, 0, 0, 0, $new_width, $new_height, $width, $height);

    if ( $imgExtension == ".jpg" )
        imagejpeg($imageResample, $save_path.$imgExtension);
    else if ( $imgExtension == ".gif" )
        imagegif($imageResample, $save_path.$imgExtension);
    else if ( $imgExtension == ".png" )
        imagepng($imageResample, $save_path.$imgExtension);

}

function getExtension($str) {

    $i = strrpos($str,".");
    if (!$i) { return ""; }

    $l = strlen($str) - $i;
    $ext = substr($str,$i+1,$l);
    return $ext;
}

if(isset($_POST['Submit']) && !$errors)
{
    echo "Image Uploaded Successfully!";

}else{
    echo "Image uploading failed>>>>>>>";
     }

?>

但下面的工作与我以前获取二进制数据时的相同函数,但这段代码根本不包含在我现在的代码中:

$file1   = tempnam($uploadPath, 'image1');
$fp1     = fopen($file1, 'wb');
fwrite($fp1, $binary1);// Here I have binary data of image. 
fclose($fp1);

thumbnail_image($file1, "640", "480",$uploadPath.$imagelastid.".jpg");

thumbnail_image($file1, "480", "340",$uploadPath.$imagelastid."_preview.jpg");

如果有人能帮我解决这件事,让我步入正轨,我会非常感激的。

我得到这个错误:

getimagesize(): Read error! in C:\xampp\htdocs\MOBILE_PHP\imagephptest.php on line 48

其中48行是-->$IMGINFO=getimagesize($Original_FILE_PATH);

有时我会在同一行上得到这个错误。

getImageSize():C:\xampp\htdocs\mobile_php\imagephptest.php第44行中的文件名不能为空

共有2个答案

戴品
2023-03-14

我怀疑问题出在这2行:

$file1 = $_FILES['uploadphoto1']['tmp_name'];
$file1   = tempnam($uploadPath, 'image1');

获取上传图像的临时名称并将其保存在$FILE1中,然后重写该值并创建临时文件。之后,您将它传递给您的函数,当您尝试

getimagesize($original_file_path);

它会失败,因为$Original_FILE_PATH甚至不是映像。

夏高朗
2023-03-14
list($width, $height, $type, $attr) = getimagesize($original_file_path);
$widthheight="$width X $height";

这将首先给出图像的宽度和高度。

 类似资料:
  • 问题内容: 我要上传图像并将其保存在服务器中。我上传了图像并获得了预览,但是我被困在将图像发送到服务器上。我想使用角度服务将此图像发送到服务器。 这是HTML代码 这是指令 问题答案: 假设您在后端中期望Multipart,这是一段对我有用的代码。 这是一个jsfiddle。 请注意 以下部分: 是一些Angular魔术,为了使$ http解析FormData并找到正确的内容类型,等等。

  • 我试图用一个标志图像存储一些细节,因为我已经创建了一个方法,并在我的本地系统中使用它,它似乎在那里工作得很好。但是当我把我的代码上传到云上的时候。我正在使用Heroku来承载我的web应用程序,它给了我一个错误。

  • 我试图将不同类别的图像保存在一个文件夹中,并检索它们。 watermark.php是 一些图像被保存在上传文件夹和临时文件夹和数据库中,并且水印被应用在它们上...但是现在当我试图上传图像时...它只在上传文件夹中,并且显示一个致命的错误:- 我怎样才能解决这个问题。。并且.PNG图像也没有保存

  • 这是一个使用ajax调用的spring项目。我想把上传的图像保存在resources/images文件夹中。以下是我的控制器: 文件被上传并显示在index.jsp中。但它不存储在资源/图像文件夹中。 下面是我的index.jsp 模型是: 它显示了一个错误: 对于路径为[/SimpleAjaxJQueryPicUpload]的上下文中的servlet[dispatcher]的servlet.Se

  • 我想在我的共享服务器上上传文件,但当我的文件大于2MB时,我无法这样做。我知道问题在于php中的上传文件大小。但问题是在php上。ini文件已经存在。现在我不知道该怎么办。因为我使用的是共享主机,所以我没有任何php的访问权限。ini文件。我只能看到它的参考资料。我试着编写自己的php。公用html文件夹中的ini文件,如下所示: 然后写。htaccess文件位于公共\u html之外,如: 但这

  • 我正在进行一个生成艺术项目,我希望允许用户保存从一个算法得到的图像。大意是: 使用生成算法在HTML5画布上创建图像 完成映像后,允许用户将画布作为映像文件保存到服务器 允许用户下载图像或将其添加到使用该算法生成的图像库中。 然而,我却被卡在了第二步上。经过谷歌的一番帮助,我找到了这篇博文,似乎正是我想要的: 这导致了JavaScript代码: 和相应的PHP(testsave.PHP): 但这似