zl程序教程

您现在的位置是:首页 >  后端

当前栏目

美图秀秀web开放平台--PHP流式上传和表单上传示例分享

PHP上传Web 示例 分享 -- 表单 开放平台
2023-06-13 09:15:31 时间

废话少说,直接上代码:

<?php
/**
*Note:foroctet-streamupload
*这个是流式上传PHP文件
*Pleasebeamendedaccordinglybasedontheactualsituation
*/
$post_input="php://input";
$save_path=dirname(__FILE__);
$postdata=file_get_contents($post_input);
if(isset($postdata)&&strlen($postdata)>0){
$filename=$save_path."/".uniqid().".jpg";
$handle=fopen($filename,"w+");
fwrite($handle,$postdata);
fclose($handle);
if(is_file($filename)){
echo"Imagedatasavesuccessed,file:".$filename;
exit();
}else{
die("Imageuploaderror!");
}
}else{
die("Imagedatanotdetected!");
}
<?php
/**
*Note:formultipart/form-dataupload
*这个是标准表单上传PHP文件
*Pleasebeamendedaccordinglybasedontheactualsituation
*/
if(!$_FILES["Filedata"]){
die("Imagedatanotdetected!");
}
if($_FILES["Filedata"]["error"]>0){
switch($_FILES["Filedata"]["error"]){
case1:
$error_log="ThefileisbiggerthanthisPHPinstallationallows";
break;
case2:
$error_log="Thefileisbiggerthanthisformallows";
break;
case3:
$error_log="Onlypartofthefilewasuploaded";
break;
case4:
$error_log="Nofilewasuploaded";
break;
default:
break;
}
die("uploaderror:".$error_log);
}else{
$img_data=$_FILES["Filedata"]["tmp_name"];
$size=getimagesize($img_data);
$file_type=$size["mime"];
if(!in_array($file_type,array("image/jpg","image/jpeg","image/pjpeg","image/png","image/gif"))){
$error_log="onlyallowjpg,png,gif";
die("uploaderror:".$error_log);
}
switch($file_type){
case"image/jpg":
case"image/jpeg":
case"image/pjpeg":
$extension="jpg";
break;
case"image/png":
$extension="png";
break;
case"image/gif":
$extension="gif";
break;
}
}

if(!is_file($img_data)){
die("Imageuploaderror!");
}

//图片保存路径,默认保存在该代码所在目录(可根据实际需求修改保存路径)
$save_path=dirname(__FILE__);
$uinqid=uniqid();
$filename=$save_path."/".$uinqid.".".$extension;
$result=move_uploaded_file($img_data,$filename);
if(!$result||!is_file($filename)){
die("Imageuploaderror!");
}
echo"Imagedatasavesuccessed,file:".$filename;
exit();

备注:美图秀秀提供两个上传接口供测试
一个是octet-stream方式上传,地址为:http://imgkaka.meitu.com/xiuxiu_web_pic_save.php
另一个是multipart/form-data方式上传,地址为:http://web.upload.meitu.com/image_upload.php
表单名称为"upload_file"。