本博客使用kindeditor4作为后台文章编辑和发布,kindeditor下载包中有关于php上传文件的实例,直接利用里面的例子就可以实现本地文件上传到服务器磁盘上,但是由于sina sae不允许磁盘操作,所以使用storage api进行上传文件的操作,并将ke中的upload_json.php文件中关于磁盘操作的所有代码注释,采用storage api,我最后的代码如下所示:
array('gif', 'jpg', 'jpeg', 'png', 'bmp'),'flash' => array('swf', 'flv'),'media' => array('swf', 'flv', 'mp3', 'wav', 'wma', 'wmv', 'mid', 'avi', 'mpg', 'asf', 'rm', 'rmvb'),'file' => array('doc', 'docx', 'xls', 'xlsx', 'ppt', 'htm', 'html', 'txt', 'zip', 'rar', 'gz', 'bz2', 'gif', 'jpg', 'jpeg', 'png', 'bmp'),
);
//最大文件大小
$max_size = 1000000;
$save_path = realpath($save_path) . '/';
//有上传文件时
if (empty($_files) === false) {
//原文件名
$file_name = $_files['imgfile']['name'];
//服务器上临时文件名
$tmp_name = $_files['imgfile']['tmp_name'];
// alert(请选择文件。 . $tmp_name);
//文件大小
$file_size = $_files['imgfile']['size'];
//检查文件名
if (!$file_name) {
alert(请选择文件。);
}
$dir_name = empty($_get['dir']) ? 'image' : trim($_get['dir']);
//获得文件扩展名
$temp_arr = explode(., $file_name);
$file_ext = array_pop($temp_arr);
$file_ext = trim($file_ext);
$file_ext = strtolower($file_ext);
//检查扩展名
if (in_array($file_ext, $ext_arr[$dir_name]) === false) {
alert(上传文件扩展名是不允许的扩展名。\n只允许 . implode(,, $ext_arr[$dir_name]) . 格式。);
}
//新文件名
$new_file_name = date(ymdhis) . '_' . rand(10000, 99999) . '.' . $file_ext;
//移动文件
$s = new saestorage();
$result = $s->upload('article', $new_file_name, $tmp_name);
if(!$result) {
alert(上传文件失败。);
}
// @chmod($file_path, 0644);
$file_url = $result;
//$s->geturl( 'redstones' , $new_file_name );
header('content-type: text/html; charset=utf-8');
$json = new services_json();
echo $json->encode(array('error' => 0, 'url' => $file_url));
exit;
}
function alert($msg) {
header('content-type: text/html; charset=utf-8');
$json = new services_json();
echo $json->encode(array('error' => 1, 'message' => $msg));
exit;
}
?> 本文链接http://www.cxybl.com/html/wlbc/php/20130601/38186.html