sae storage:在PHP中使用Sina Sae提供的Storage服務進行博文圖片上傳
來源:互聯網
上載者:User
本部落格使用kindeditor4作為後台文章編輯和發布,kindeditor下載包中有關於php上傳檔案的執行個體,直接利用裡面的例子就可以實現本地檔案上傳到伺服器磁碟上,但是由於sina sae不允許磁碟操作,所以使用storage API進行上傳檔案的操作,並將ke中的upload_json.php檔案中關於磁碟操作的所有代碼注釋,採用storage API,我最後的代碼如下所示:
<?php
/**
* KindEditor PHP
*
* 本PHP程式是示範程式,建議不要直接在實際項目中使用。
* 如果您確定直接使用本程式,使用之前請仔細確認相關安全設定。
*
*/
require_once 'JSON.php';
$php_path = dirname(__FILE__) . '/';
$php_url = dirname($_SERVER['PHP_SELF']) . '/';
//檔案儲存目錄路徑
$save_path = $php_path . '../../res/upload/';
//檔案儲存目錄URL
$save_url = $php_url . '../../res/upload/';
//定義允許上傳的副檔名
$ext_arr = array('image' => 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