PHP流式上传和表单上传(美图秀秀)

来源:互联网 发布:windows xp 原版 编辑:程序博客网 时间:2024/06/11 05:00

最近需要开发一个头像上传的功能,找了很多都需要授权的,后来找到了美图秀秀,功能非常好用。

01<?php
02/**
03 * Note:for octet-stream upload
04 * 这个是流式上传PHP文件
05 * Please be amended accordingly based on the actual situation
06 */
07$post_input 'php://input';
08$save_path = dirname(__FILE__);
09$postdata file_get_contents($post_input);
10if (isset($postdata) && strlen($postdata) > 0) {
11    $filename $save_path '/' . uniqid() . '.jpg';
12    $handle fopen($filename'w+');
13    fwrite($handle$postdata);
14    fclose($handle);
15    if (is_file($filename)) {
16        echo 'Image data save successed,file:' $filename;
17        exit ();
18    else {
19        die ('Image upload error!');
20    }
21else {
22    die ('Image data not detected!');
23}

 

01<?php
02/**
03 * Note:for multipart/form-data upload
04 * 这个是标准表单上传PHP文件
05 * Please be amended accordingly based on the actual situation
06 */
07if (!$_FILES['Filedata']) {
08    die ('Image data not detected!');
09}
10if ($_FILES['Filedata']['error'] > 0) {
11    switch ($_FILES ['Filedata'] ['error']) {
12        case 1 :
13            $error_log 'The file is bigger than this PHP installation allows';
14            break;
15        case 2 :
16            $error_log 'The file is bigger than this form allows';
17            break;
18        case 3 :
19            $error_log 'Only part of the file was uploaded';
20            break;
21        case 4 :
22            $error_log 'No file was uploaded';
23            break;
24        default :
25            break;
26    }
27    die ('upload error:' $error_log);
28else {
29    $img_data $_FILES['Filedata']['tmp_name'];
30    $size getimagesize($img_data);
31    $file_type $size['mime'];
32    if (!in_array($file_typearray('image/jpg''image/jpeg''image/pjpeg''image/png''image/gif'))) {
33        $error_log 'only allow jpg,png,gif';
34        die ('upload error:' $error_log);
35    }
36    switch ($file_type) {
37        case 'image/jpg' :
38        case 'image/jpeg' :
39        case 'image/pjpeg' :
40            $extension 'jpg';
41            break;
42        case 'image/png' :
43            $extension 'png';
44            break;
45        case 'image/gif' :
46            $extension 'gif';
47            break;
48    }
49}
50 
51if (!is_file($img_data)) {
52    die ('Image upload error!');
53}
54 
55// 图片保存路径,默认保存在该代码所在目录(可根据实际需求修改保存路径)
56$save_path = dirname(__FILE__);
57$uinqid = uniqid();
58$filename $save_path '/' $uinqid '.' $extension;
59$result = move_uploaded_file($img_data$filename);
60if (!$result || !is_file($filename)) {
61    die ('Image upload error!');
62}
63echo 'Image data save successed,file:' $filename;
64exit ();

 

备注:美图秀秀提供两个上传接口供测试

一个是octet-stream方式上传,地址为:http://imgkaka.meitu.com/xiuxiu_web_pic_save.php

另一个是multipart/form-data方式上传,地址为:http://web.upload.meitu.com/image_upload.php

表单名称为"upload_file" 。

0 0
原创粉丝点击