zoukankan      html  css  js  c++  java
  • curl上传图片文件

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

    暂时想到的方式是:

    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

  • 相关阅读:
    2017 ICPC beijing E
    1629 B君的圆锥
    1298 圆与三角形
    通过String获取字符数组
    Java中的代码点与代码单元
    数据库事务隔离级别
    oracle修改密码、添加用户及授权
    Python起航
    软件测试常见概念
    TestNG--@Factory
  • 原文地址:https://www.cnblogs.com/findgor/p/5127751.html
Copyright © 2011-2022 走看看