PHP与h5 ajax 跨域上传图片解决方案

2 篇文章 0 订阅
2 篇文章 0 订阅

可能很多人会遇到一种很烦人的情况,那就是文件上传各种限制,参数设置,这里记录一下php与h5利用ajax上传图片。废话少说上代码:

html页面的啦~

<form  method="post" enctype="multipart/form-data" id="form">
    <input type="file" id="uploadFile" runat="server" />
    <input type="button" id="btnUpload" value="确定" onclick="uploadImage()" />
    <div id="imgDiv">
    </div>
</form>

js方法的啦~

//获取图片
    var file = $('#uploadFile')[0].files[0];
    //设置传参
    var formdata = new FormData();
    //获取文件放到formdata
    formdata.append("file",file);
    formdata.append("参数2",'123456789');

    $.ajax({
        url : 你的接口或者请求路径,
        type: 'post',
        // dataType: 'json',
        // json:'callback',(因为php设置了header跨域,并不需要用这两个参数,设置了反而影响返回)
        data: formdata,
        processData: false,
        contentType: false,
        cache: false,
        success:function(res){
            console.log(res);
        },error:function(res){
            console.log("错误");
        }
    })

php(服务器端)关键点!就是上面这两个header设置,接收所有域的请求!


//下面的请求头也是我在网上各种搜索才找到的

header("Access-Control-Allow-Origin:*");
/*星号表示所有的域都可以接受,*/
header("Access-Control-Allow-Methods:GET,POST");

//其实写到这基本后面就是基本的参数接收了
        //获取图片的临时路径
        $image = $_FILES["file"]['tmp_name'];
        //只读方式打开图片文件
        $fp = fopen($image, "r");
        //读取文件(可安全用于二进制文件)
        $file = fread($fp, $_FILES["file"]["size"]); //二进制数据流

        //获取时间
        $date_info = getdate();
        $year = $date_info['year'];
        $mon = $date_info['mon'];
        //上传路径
        $dir_url = '../images/test/';
        //检测目录是否存在,不存在则建立目录
        if (is_dir($dir_url)) {

        } else {
            mkdir($dir_url, 0777, true);
        }

        //生成初始化文件名
        $filename= $_FILES["file"]['name'];
        //获取后缀
        $type = explode('.',$_FILES["file"]['name']);

        //新图片的路径
        $newFilePath = $dir_url.$filename.'.'.$type[1];
        $data = $file;
        $newFile = fopen($newFilePath,"w"); //打开文件准备写入
        fwrite($newFile,$data); //写入二进制流到文件
        fclose($newFile); //关闭文件

o -> right !!!ok,这就是很完美的上传文件或者图片了~。终于设置大小或者图片压缩之类的,你们就见仁见智各自发挥了哈!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值