热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

php上传本地图片到服务器上,php上传图片到远程服务器并返回图片地址到本地显示...

本示例将演示一个简单的上传图片到远程服务器,然后生成图片路径后通过提交的回调路径返回给本地服务器,最后将图片地址显示在前端页面。本项目应用三个文件&#x

本示例将演示一个简单的上传图片到远程服务器,然后生成图片路径后通过提交的回调路径返回给本地服务器,最后将图片地址显示在前端页面。

本项目应用三个文件,即前端选取图片的页面,然后提交图片到远程服务器处理文件,返回前端页面的回调文件。

989f89809189fc39002403f36c30a67a.png

一、前端上传图片页面

upload_test.html

/p>

"http://www.w3.org/TR/html4/loose.dtd">

Upload Image
主题封面图:

   图片格式 jpg jpeg gif png

封面图URL:

*

这里需要注意当回调页面返回图片地址到前端页面时,需要iframe标签(这里我们将其隐藏),否则将会找不到要在页面显示的地方 。

和一般的

标签相比多了一个target属性罢了,用于指定标签页在哪里打开以及提交数据。

而如果设置为iframe的name值,即"post_frame"的话,就会在该iframe内打开,因为CSS设置为隐藏,因而不会有任何动静。若将display:none去掉,还会看到服务器的返回信息。

上传文件时,form表单的method、 enctype属性必须和上面的代码一样,然后将target的值设为iframe的name,这样就可以实现无刷新上传文件。

当选择图片提交时,还有一个隐藏域,即给远程服务器提交图片时,还需要提交回调路径,好让图片返回给本地服务器。(这里我们都是用本地服务器来进行测试)

二、远程服务器图片处理

upload_action.php

/**

* 图片上传处理

* User: CorwienWong

* Date: 16-06-15

* Time: 00:33

*/

header("Content-type:text/html;charset=utf-8");

// 配置文件需要上传到服务器的路径,需要允许所有用户有可写权限,否则无法上传成功

$uploadPath = 'uploads/';

// 获取提交的图片数据

$file = $_FILES['opus'];

// 获取图片回调路径

$callbackUrl = $_POST['callbackUrl'];

if($file['error'] > 0)

{

$msg = '传入参数错误' . $file['error'] . " ";

exit($msg);

}

else

{

// chmod($uploadPath, 0666);

if(file_exists($uploadPath.$file['name'])){

$msg = $file['name'] . "文件已经存在!";

exit($msg);

}

else

{

if(move_uploaded_file($file['tmp_name'], $uploadPath.$file['name']))

{

$img_url = "http://localhost/url_test/".$uploadPath.$file['name'];

$img_url = urlencode($img_url);

$url = $callbackUrl."?img_url={$img_url}";

// 跳转

header("location:{$url}");

exit();

}

else

{

exit("上传失败!");

}

}

}

图片上传到到该页面后,保存并返回图片地址给回调页面。

三、回调页面返回图片地址到前端页面

回调页面获取到远程服务器传来的图片地址后,经过"window.parent.XXX"返回给前端页面。

callback.php

##回调方法

$img_url = $_GET['img_url'];

// 返回数据给回调页面

echo "

";

49017093591402eb16470997c382d329.png

如果我们的前端页面upload_test.html没有iframe标签,则不会返回找到ID为“cover_img_url”的输入框的值,会跳转到空白页。

587cc64b6014e2265b17c3df3209f9ce.png

四、上传到服务器的文件写入日志记录

写入日志:

$file = $this->file = $_FILES[$this->fileField];

// 要写入文件的文件名(可以是任意文件名),如果文件不存在,将会创建一个

$log_file = '../log/log.txt';

$time = date("Y-m-d H:i:s", time());

$log_content = var_export($_FILES, true) ."Time:{$time} \r\n";

file_put_contents($log_file, $log_content, FILE_APPEND);

// 结果记录

array (

'name' => 'myImage.jpg',

'type' => 'image/jpeg',

'tmp_name' => '/Applications/XAMPP/xamppfiles/temp/phpod5VA4',

'error' => 0,

'size' => 249318,

)

array (

'file' =>

array (

'name' => 'myImage.jpg',

'type' => 'image/jpeg',

'tmp_name' => '/Applications/XAMPP/xamppfiles/temp/phppRvcVe',

'error' => 0,

'size' => 249318,

),

)Time:2016-09-10 17:32:30



推荐阅读
  • 图像因存在错误而无法显示 ... [详细]
  • 在tp5项目中引入ueditor编辑器并实例化后插入图片出现目录创建失败问题在查看网络上各种解决方案之后总结如下:根据官网提示主要是因为图片保存的路径无权限导致,官方文档链接:ht ... [详细]
  • 开发笔记:UEditor调用上传图片上传文件等模块
    1、引入ue相关文件,写好初始代码为了更好的封装整一个单独的插件,这里我们要做到示例化ue后隐藏网页中的编辑窗口,并移除焦点。 ... [详细]
  • 在Android开发中,使用Picasso库可以实现对网络图片的等比例缩放。本文介绍了使用Picasso库进行图片缩放的方法,并提供了具体的代码实现。通过获取图片的宽高,计算目标宽度和高度,并创建新图实现等比例缩放。 ... [详细]
  • Spring源码解密之默认标签的解析方式分析
    本文分析了Spring源码解密中默认标签的解析方式。通过对命名空间的判断,区分默认命名空间和自定义命名空间,并采用不同的解析方式。其中,bean标签的解析最为复杂和重要。 ... [详细]
  • android listview OnItemClickListener失效原因
    最近在做listview时发现OnItemClickListener失效的问题,经过查找发现是因为button的原因。不仅listitem中存在button会影响OnItemClickListener事件的失效,还会导致单击后listview每个item的背景改变,使得item中的所有有关焦点的事件都失效。本文给出了一个范例来说明这种情况,并提供了解决方法。 ... [详细]
  • 本文介绍了Web学习历程记录中关于Tomcat的基本概念和配置。首先解释了Web静态Web资源和动态Web资源的概念,以及C/S架构和B/S架构的区别。然后介绍了常见的Web服务器,包括Weblogic、WebSphere和Tomcat。接着详细讲解了Tomcat的虚拟主机、web应用和虚拟路径映射的概念和配置过程。最后简要介绍了http协议的作用。本文内容详实,适合初学者了解Tomcat的基础知识。 ... [详细]
  • 本文介绍了在Vue项目中如何结合Element UI解决连续上传多张图片及图片编辑的问题。作者强调了在编码前要明确需求和所需要的结果,并详细描述了自己的代码实现过程。 ... [详细]
  • HTML学习02 图像标签的使用和属性
    本文介绍了HTML中图像标签的使用和属性,包括定义图像、定义图像地图、使用源属性和替换文本属性。同时提供了相关实例和注意事项,帮助读者更好地理解和应用图像标签。 ... [详细]
  • 如何在php文件中添加图片?
    本文详细解答了如何在php文件中添加图片的问题,包括插入图片的代码、使用PHPword在载入模板中插入图片的方法,以及使用gd库生成不同类型的图像文件的示例。同时还介绍了如何生成一个正方形文件的步骤。希望对大家有所帮助。 ... [详细]
  • 本文介绍了Java后台Jsonp处理方法及其应用场景。首先解释了Jsonp是一个非官方的协议,它允许在服务器端通过Script tags返回至客户端,并通过javascript callback的形式实现跨域访问。然后介绍了JSON系统开发方法,它是一种面向数据结构的分析和设计方法,以活动为中心,将一连串的活动顺序组合成一个完整的工作进程。接着给出了一个客户端示例代码,使用了jQuery的ajax方法请求一个Jsonp数据。 ... [详细]
  • 用ESP32与Python实现物联网(IoT)火焰检测报警系统
    下图是本案例除硬件连线外的3步导学开发过程,每个步骤中实现的功能请参考图中的说明。在硬件连线完成之后我们建议您先使用“一分钟上云体验”功能预先体验本案例的实际运行效果 ... [详细]
  • 人脸检测 pyqt+opencv+dlib
    一、实验目标绘制PyQT界面,调用摄像头显示人脸信息。在界面中,用户通过点击不同的按键可以实现多种功能:打开和关闭摄像头, ... [详细]
  • 我正在尝试使用scrapycrallsingle运行完美运行的scrapy蜘蛛,但我无法在python脚本中运行它.主要问题是从不执行SingleBlogSpider.parse方 ... [详细]
  • Java大文件HTTP断点续传到服务器该怎么做?
    最近由于笔者所在的研发集团产品需要,需要支持高性能的大文件http上传,并且要求支持http断点续传。这里在简要归纳一下,方便记忆 ... [详细]
author-avatar
手机用户2602883205_410
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有