Php 将上传的图像保存到一个目录,并将调整大小的副本保存到一个单独的目录
我已经为此工作了好几个小时了。我希望原始图像存储到目录“大”和大小的图像存储到“上传”,但大不会存储。调整大小后的图像存储效果良好。我做错了什么?我已经尝试了十几种不同的方法,这就是我放弃的地方。我发现这个php类非常有用: 举个小例子:Php 将上传的图像保存到一个目录,并将调整大小的副本保存到一个单独的目录,php,image,resize,Php,Image,Resize,我已经为此工作了好几个小时了。我希望原始图像存储到目录“大”和大小的图像存储到“上传”,但大不会存储。调整大小后的图像存储效果良好。我做错了什么?我已经尝试了十几种不同的方法,这就是我放弃的地方。我发现这个php类非常有用: 举个小例子: <?php $images = $_FILES["userfile"]["tmp_name"]; $new_images = "small_".$_FILES["userfile"]["name"]; $target = "
<?php
$images = $_FILES["userfile"]["tmp_name"];
$new_images = "small_".$_FILES["userfile"]["name"];
$target = "large/".$new_images;
$width=314; //*** Fix Width & Heigh (Autu caculate) ***//
$size=GetimageSize($images);
$height=round($width*$size[1]/$size[0]);
$images_orig = ImageCreateFromJPEG($images);
$photoX = ImagesX($images_orig);
$photoY = ImagesY($images_orig);
$images_fin = ImageCreateTrueColor($width, $height);
ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1,
$height+1, $photoX, $photoY);
ImageJPEG($images_fin,"uploads/".$new_images);
ImageJPEG($images_orig,"large/".$new_images);
ImageDestroy($images_orig);
ImageDestroy($images_fin);
?>
希望有帮助 所以我知道这很古老,但这是我用你的代码给出的答案。。。如果先将原始文件移动到目录中。您可以使用该文件重新调整大小,然后将其存储到您想要的位置 $year、$renamefiledash和$changesSecond变量来自我自己的表单。你可以随意命名这个文件
include("path/to/your/class/folder/resize_class.php");
$resizeObj = new resize('path/to/your/images/folder/name_of_image_recently_uploaded.jpg');
$resizeObj -> resizeImage(150, 100, 0);
$resizeObj -> saveImage('path/to/your/images/thumb/folder/name_of_image_recently_uploaded.jpg', 100);
你有什么错误吗?你不应该在原稿上做imagejpeg。这样会重新压缩它,从而失去质量。您应该改为使用
move\u uploaded\u file()
,这样才能保存真正的原始文件。@很好,我尝试的任何尝试都没有收到任何错误。它们只是没有存储到目录中。@MarcB我也尝试过使用move_uploaded_file(),但没有成功。所以我的代码是:move_上传的文件($_文件[“userfile”][“tmp_name”],“large/”$_文件[“file”][“name”])代码>这将是一个可怕的安全漏洞<代码>['name']
可以包含路径信息,该代码将允许恶意用户在服务器上任意位置涂鸦文件。
move_uploaded_file($_FILES["file"]["tmp_name"],
$_SERVER['DOCUMENT_ROOT'].'/downloads/media/'.$year.'/'.$renameFileDash.'.'.$changeSecond);
$images = $_SERVER['DOCUMENT_ROOT'].'/downloads/media/'.$year.'/'.$renameFileDash.'.'.$changeSecond;
$width=618; //*** Fix Width & Heigh (Autu caculate) ***//
$size=GetimageSize($images);
$height=round($width*$size[1]/$size[0]);
$images_orig = ImageCreateFromJPEG($images);
$photoX = ImagesX($images_orig);
$photoY = ImagesY($images_orig);
$images_fin = ImageCreateTrueColor($width, $height);
ImageCopyResampled($images_fin, $images_orig, 0, 0, 0, 0, $width+1,
$height+1, $photoX, $photoY);
ImageJPEG($images_fin,$_SERVER['DOCUMENT_ROOT'].'/images/media-archive/media-thumbs/'.$renameFileDash.'.'.$changeSecond);
ImageDestroy($images_orig);
ImageDestroy($images_fin);