为了优化网站,需要做静态化和,图片分离

暂时想到的方式是:

1,php//input  流方式上传到远程服务器

2,阿里云oss收费服务

3,curl上传图片

4,phpftp上传图片

5, 服务器同步文件夹,定时同步图片

下面先来个curl的原理

<!--test.com/index.html 提交页面-->
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>test</title>
</head>
<body>
<form action="add.php" method="post" enctype="multipart/form-data">
<input type="file" name="img">
<input type="text" name="val" value="test_val">
<input type="submit" value="submit">
</form>
</body>
</html>
//test.com/add.php
//发送图片
header('content-type:text/html;charset=utf8'); $ch = @curl_init();
//加@符号curl就会把它当成是文件上传处理
$data = array('img'=>'@'. dirname(__FILE__).'/test2.jpg'); //下面的@是为了屏蔽错误输出,如果不加的话,也能上传成功,不过会报
//Deprecated: curl_setopt(): The usage of the @filename API for file uploading is deprecated. 这是版本问题,如果要彻底解决,看文章下面的参考文章。 @curl_setopt($ch,CURLOPT_URL,"http://test2.com/file.php");
@curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
@curl_setopt($ch,CURLOPT_POST,true);
@curl_setopt($ch,CURLOPT_POSTFIELDS,$data);
@$result = curl_exec($ch);
@curl_close($ch);
echo json_decode($result);
//test2.com/file.php
//接收图片
if($_FILES){
$filename = time().'-'.$_FILES['img']['name'];
$tmpname = $_FILES['img']['tmp_name'];
if(move_uploaded_file($tmpname,dirname(__FILE__).'/upload/'.$filename)){
echo json_encode('上传成功');
}else{
$data = json_encode($_FILES);
echo $data;
}
}

参考:http://blog.csdn.net/cyuyan112233/article/details/21007163

如果想用php流的方式发送,但是图片和表单值一起的时候就比较不方便,而且不过表单属性设置了enctype="multipart/form-data"是流是接收不到的

参考:http://www.nowamagic.net/academy/detail/12220523

curl上传图片文件的更多相关文章

  1. PHP5.6通过CURL上传图片@符无效的兼容问题

    今天本来想试试一个图片云的API,于是本地做了个上传图片的测试,结果灰常郁闷的发现以前一直用的好好的CURL上传图片居然死活不起作用,本来几分钟搞定的事情,结果折腾了大半天才终于找到原因,居然是兼容性 ...

  2. php 通过curl上传图片

    通过curl上传图片 PHP < 5.5: 使用 目前使用的php版本 7.1 测试无法使用 前面加@ 的方法上传文件 ,查找资料 使用 curl_setopt($ch,CURLOPT_SAFE ...

  3. php上传图片文件常用的几个方法

    1. 前台 <form class="add-form" method="post" action="/person/save" en ...

  4. [Ajax] 使用Ajax异步上传图片文件(非Form表单提交)

    通过表单Form提交来上传文件的方式这里就不说了: 下面介绍,通过js中使用ajax异步上传图片文件: 新建一个html页面和一个一般处理程序即可: 涉及思路: //发送2次Ajax请求完成js异步上 ...

  5. 利用Spring MVC 上传图片文件

    本文转自:http://amcucn.iteye.com/blog/264457.感谢作者 近日在工作当中,需要用到上传图片的功能,然而自己平时学习的时候只会使用struts的上传功能,但因为项目并没 ...

  6. curl下载文件

    * curl下载文件* 根据业务需求* 通过不同站点去访问路径* 下载文件* 但是不同站点需要设置header头* 这里使用curl方式下载* 具体看代码: //下载地址 $url = 'https: ...

  7. html+php上传图片文件到服务器

    html+php上传图片文件到服务器 一.html代码 <body> <form action="" method="post" enctyp ...

  8. ajax上传图片文件

    这里用的是一个隐藏的iframe,这样可以让form表单提交到这个iframe里面,用户就看不到页面的刷新了 前段时间在解决ajax上传文件时折腾了好一阵.直接用$.post上传文本信息肯定是没有问题 ...

  9. 利用webuploader插件上传图片文件,完整前端示例demo,服务端使用SpringMVC接收

    利用WebUploader插件上传图片文件完整前端示例demo,服务端使用SpringMVC接收 Webuploader简介   WebUploader是由Baidu WebFE(FEX)团队开发的一 ...

随机推荐

  1. MySQL错误:The user specified as a definer (XXX@XXX) does not exist

    今天由于更换服务器,重新再本地备份了数据库,试运行程序报错,如下: MySQL错误:The user specified as a definer (XXX@XXX) does not exist 意 ...

  2. Android USB Host与HID通讯

    前端时间捣鼓一个HID的硬件, 需要和android通信, 网上搜索了一圈,收获不小. 比较好的文章是:      Android USB Host与HID通讯 Android Service创建US ...

  3. dm9000c 移值新内核 linux-4.1.24

    错误 1 /home/dm9000/dm9dev9000c.c:309: error: conflicting types for 'phy_read'include/linux/phy.h:637: ...

  4. DragRow-GYF

    <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="DragRowDemo.as ...

  5. 关于webrtc视频会议的解决方案

    以我的经验来看视频会议分两种模式:网状模型,星型 1.网状模型 所谓的网状模型就是参加会议的人中每两个人建立一个点对点的连接. 比如:一个会议室有三个人A,B,C 基于网络模型就需要这样: 1.A和B ...

  6. linux解压/压缩文件

    1.*.tar 用 tar –xvf 解压  2.*.gz 用 gzip -d或者gunzip 解压  3.*.tar.gz和*.tgz 用 tar –xzf 解压  4.*.bz2 用 bzip2 ...

  7. ANGULAR JS WATCH监听使用(详)

    ANGULAR 监听使用: 当angular数据模型发生变化时,我们需要如果需要根据他的变化触发其他的事件. $watch是一个scope函数,用于监听模型变化,当你的模型部分发生变化时它会通知你. ...

  8. ionic项目 环境搭建及基本操作

    一.安装 1.安装node.js 3.安装ionic & cordova: 命令行输入:npm install –g cordova ionic 注:-g表示全局安装,也可以进入指定的目录安装 ...

  9. ML-分类与逻辑回归

    布尔分类(binary classification)问题: 训练集:$S=\{(x^{(i)}, y^{(i)})\}$ 输入:特征向量$x$ 期望输出:$y\in\{0, 1\}$ 这里使用的假设 ...

  10. android listview simpleAdaper

    xml (主) <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns: ...