之前提问过,是先上传再压缩加水印,还是反之

之前提问过,是先上传再压缩加水印,还是反之

可能之前并没有提问清楚,因为有一个临时文件存在:

问题:

  1. 临时文件存在于硬盘或内存中?在内存中 是不是就不能操作了?

  2. 我之前的提问不算完整,我问的是压缩与加水印是直接操作原图,还是操作临时文件;

  3. 按照老师的意思是操作临时文件,但是临时文件使用pathinfo()是无法获得扩展名的!因为临时文件就没有扩展名,导致无法保存?


正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
guly 2019-03-19 11:37:14

你好,上传是也可以不使用临时文件,但是要必须指定上传的路径。

文件被上传后,默认地会被储存到服务端的默认临时目录中。

你可以通过php.ini 中的 upload_tmp_dir 设置这个目录,然后通过

move_uploaded_file  //将上传的文件移动到新位置

临时文件也是可以获取图片的后缀名的,使用以下方式获取图片的后缀名: 

//图片后缀

    $filename_arr = explode('.',$_FILES['upload']['name']);
    $extension = end($filename_arr);

如果解决您的问题请采纳,祝学习愉快!

guly 2019-02-27 17:37:11

你好,1、图片的上传到服务端的临时文件,然后经过处理获取图片文件的后缀及名称,并设置一个存储的路径。

2、图片处理的是上传在临时文件的原图。

3、保存时不需要临时文件的的扩展名,保存是需要设置一个想要保存的路径,如:

//通过以下操作获取图片后缀
$filename_arr = explode('.',$_FILES['upload']['name']);
$extension = end($filename_arr);
//移动后图片路径
$path ='./upload/'.uniqid().'.'.$extension;
//移动图片
$result = move_uploaded_file($_FILES['upload']['tmp_name'],$path);

然后对数据进行保存,该方式是和图片上传一致的,如果不清楚建议先仔细研究图片上传的步骤和原理进行巩固下,如果解决您的问题请采纳,祝学习愉快!

  • 提问者 轩辕小齐V #1
    老师在么,最近一直很忙,我来得及看。您的意思是压缩加水印直接加载临时文件?我尝试了,不行真的不行,我第一反应也是真么做,因为临时文件没有扩展名 ,图片处理的相关函数,根本没法处理这种文件。这是真实的,所以我也只能先保存,之后再处理加水印或者压缩。如果有什么神奇的方式直接操作临时文件求指教,还有一点据说临时文件有时不在硬盘上而在内存里,内存里时,路径有时啥呢?
    2019-03-18 16:58:46
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师