本文的上传DEMO只是用作本地上传演示,IOS、安卓等APP客户端只要请求ajax.php,并传参file即可获取。该demo是单文件上传,若是APP端想多文件上传,请求ajax.php多次即可。
上传图片接口地址:http://www.sucaihuo.com/jquery/13/1332/demo/ajax.php,本文中的index.html仅作为测试
PHP原生上传
$typeArr = array("jpg", "png", "gif");//允许上传文件格式
$path = "uploads/";//上传路径
if (isset($_POST)) {
$name = $_FILES['file']['name'];
$size = $_FILES['file']['size'];
$name_tmp = $_FILES['file']['tmp_name'];
if (empty($name)) {
echo json_encode(array("error"=>"您还未选择图片"));
exit;
}
$type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型
if (!in_array($type, $typeArr)) {
echo json_encode(array("error"=>"清上传jpg,png或gif类型的图片!"));
exit;
}
if ($size > (500 * 1024)) {
echo json_encode(array("error"=>"图片大小已超过500KB!"));
exit;
}
$pic_name = time() . rand(10000, 99999) . "." . $type;//图片名称
$pic_url = $path . $pic_name;//上传后图片路径+名称
if (move_uploaded_file($name_tmp, $pic_url)) { //临时文件转移到目标文件夹
echo json_encode(array("error"=>"0","pic"=>$pic_url,"name"=>$pic_name));
} else {
echo json_encode(array("error"=>"上传有误,清检查服务器配置!"));
}
}
Thinkphp上传
//上传图片
public function upload_pic() {
$data = array(
"files" => $_FILES,
);
$rs = $this->upload_common($data);
echo json_encode($rs);
}
function upload_common($posts) {
$pics = $posts['files'];
$path = "uploads/"; //上传路径
if (!is_dir($path)) {
mkdir($path, 0777);
}
$error_name = $error_size = $error_type = 0;
$typeArr = array("jpg", "png", "gif", "jpeg"); //允许上传文件格式
$size_max = 50000 * 1024; //最大上传文件大小
foreach ($pics as $v) {
$name = $v['name'];
$size = $v['size'];
$name_tmp = $v['tmp_name'];
$type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型
if ($name == '') {
$error_name ++;
}
if ($size > $size_max) {
$error_size++;
}
if (!in_array($type, $typeArr)) {
$error_type++;
}
}
if ($error_name > 0) {
echo json_encode(array("code" => "no_upload_pic", "result" => "请选择上传图片"));
exit;
}
if ($error_size > 0) {
echo json_encode(array("code" => "over_size", "result" => "图片大小已超过50000KB!"));
exit;
}
if ($error_type > 0) {
echo json_encode(array("code" => "wrong_types", "result" => "清上传图片格式的文件!"));
exit;
}
$times_success = 0;
foreach ($pics as $v) {
$name = $v['name'];
$size = $v['size'];
$name_tmp = $v['tmp_name'];
$type = strtolower(substr(strrchr($name, '.'), 1)); //获取文件类型
$pic_name = time() . rand(10000, 99999) . "." . $type; //文件名称
$pic_url = $path . $pic_name; //上传后图片路径+名称
if (move_uploaded_file($name_tmp, $pic_url)) { //临时文件转移到目标文件夹
$times_success++;
}
// $pics[] = $pic_url;
}
// file_put_contents("tres.txt", json_encode($pics));
// $pics = array_unique($pics);
if ($times_success > 0) {
$rs = array("code" => "0", "result" => "ok", "pic_url" => $pic_url);
} else {
$rs = array("code" => "config", "result" => "上传出错,请稍候再试!");
}
return $rs;
}
系统已开启自动识别垃圾评论机制,识别到的自动封号,下载出错或者资源有问题请联系全栈客服QQ 1915635791