Ueditor文件上传我是交给Article控制器下的upload方法:
/**
* Ueditor采用TP自带的upload类上传
*/
public function upload(){
date_default_timezone_set("Asia/chongqing");
error_reporting(E_ERROR);
header("Content-Type: text/html; charset=utf-8");
$CONFIG = json_decode(preg_replace("/\/\*[\s\S]+?\*\//", "", file_get_contents("./Data/ueditor/php/config.json")), true);
$action = $_GET['action'];
switch ($action) {
case 'config':
$result = json_encode($CONFIG);
break;
/* 上传图片 */
case 'uploadimage':
//$result = include("action_upload.php");
import('ORG.Net.UploadFile');
$upload = new UploadFile();
$upload->autoSub = true;
$upload->subType = 'date';
$upload->dateFormat = 'Ymd';
if ($upload->upload('./Uploads/images/')){
$info= $upload->getUploadFileInfo();
import('ORG.Util.Image');
Image::water('./Uploads/images/'.$info[0]['savename'],'./Public/images/erweicode.jpg');
echo json_encode(array(
'url' => __ROOT__.'/Uploads/images/'.$info[0]['savename'],
'title' => htmlspecialchars($_POST['pictitle'], ENT_QUOTES),
'original' => $info[0]['name'],
'state' => 'SUCCESS'
));
}else{
echo json_encode(array(
'state' => $upload->getErrorMsg(),
));
}
break;
/* 上传涂鸦 */
case 'uploadscrawl':
/* 上传视频 */
case 'uploadvideo':
/* 上传附件 */
case 'uploadfile':
import('ORG.Net.UploadFile');
$upload = new UploadFile();
$upload->autoSub = true;
$upload->subType = 'date';
$upload->dateFormat = 'Ymd';
if ($upload->upload('./Uploads/attachments/')){
$info = $upload->getUploadFileInfo();
echo json_encode(array(
'url' => __ROOT__.'/Uploads/attachments/'.$info[0]['savename'],
'title' => htmlspecialchars($_POST['pictitle'], ENT_QUOTES),
'original' => $info[0]['name'],
'state' => 'SUCCESS'
));
}else{
echo json_encode(array(
'state' => $upload->getErrorMsg(),
));
}
break;
}
/* 输出结果 */
if (isset($_GET["callback"])) {
if (preg_match("/^[\w_]+$/", $_GET["callback"])) {
echo htmlspecialchars($_GET["callback"]) . '(' . $result . ')';
} else {
echo json_encode(array(
'state'=> 'callback参数不合法'
));
}
} else {
echo $result;
}
}返回的$info是上传文件信息,当我打印$info的时候,出现的是两个URL请求,而不是一个,返回数据也是单独的两个数组。

我想问的是怎么获取两个单独数组中的savename字段值,重新组合为一个单独的数组$saveNames。($saveName数组中存放的是上传所有文件的保存名)。
并且,添加文章的表单处理是另外一个函数addArticleHandle处理,怎么才能在adArticleHandle函数中获取所有文件保存名$saveNames这个数组,是将$saveNames这个数组设为全局吗?
说了这么多,由于上传文件和添加文章入库是异步完成的。我的目的就是达到以下的要求:1.添加文章失败时,删除刚刚上传的文件。 2.删除那些上传成功但没有插入文章的文件。 3.删除文章时,同时删除该文章上传的所有文件。
我已经把保存upload的表建好了,就是想问怎么获取上传文件的保存名,然后在addArticleHandle方法中使用。
或者大家有更好的方法,希望不吝赐教!!!
最佳答案