html 富文本编辑器 图片上传,ueditor富文本编辑器如何实现跨域上传图片

本文详细描述了一个PHP函数如何处理文件上传,包括错误检查、大小限制和格式验证,最终通过CURL将文件上传到远程图片服务器的过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

private function upFile()

{

$file = $this->file = $_FILES[$this->fileField];

if (!$file) {

$this->stateInfo = $this->getStateInfo("ERROR_FILE_NOT_FOUND");

return;

}

if ($this->file['error']) {

$this->stateInfo = $this->getStateInfo($file['error']);

return;

} else if (!file_exists($file['tmp_name'])) {

$this->stateInfo = $this->getStateInfo("ERROR_TMP_FILE_NOT_FOUND");

return;

} else if (!is_uploaded_file($file['tmp_name'])) {

$this->stateInfo = $this->getStateInfo("ERROR_TMPFILE");

return;

}

$this->oriName = $file['name'];

$this->fileSize = $file['size'];

$this->fileType = $this->getFileExt();

$this->fullName = $this->getFullName();

$this->filePath = $this->getFilePath();

$this->fileName = $this->getFileName();

$dirname = dirname($this->filePath);

//检查文件大小是否超出限制

if (!$this->checkSize()) {

$this->stateInfo = $this->getStateInfo("ERROR_SIZE_EXCEED");

return;

}

//检查是否不允许的文件格式

if (!$this->checkType()) {

$this->stateInfo = $this->getStateInfo("ERROR_TYPE_NOT_ALLOWED");

return;

}

//创建目录失败

if (!file_exists($dirname) && !mkdir($dirname, 0777, true)) {

$this->stateInfo = $this->getStateInfo("ERROR_CREATE_DIR");

return;

} else if (!is_writeable($dirname)) {

$this->stateInfo = $this->getStateInfo("ERROR_DIR_NOT_WRITEABLE");

return;

}

//移动文件

if (!(move_uploaded_file($file["tmp_name"], $this->filePath) && file_exists($this->filePath))) { //移动失败

$this->stateInfo = $this->getStateInfo("ERROR_FILE_MOVE");

} else { //移动成功

$this->stateInfo = $this->stateMap[0];

}

/**

*此处上面的代码都是demo内的源代码不需要改,下面才是我加上的需要敲黑板划重点的地方,说一下思路,上面的代码会在本地生成上传的图片内容,然后我们就可以拿到上传的文件的全路径,

*拿到全路径再调用事先封装好的上传接口上传到图片服务器即可,由于第一步配置了图片服务器的域名,所以最后返回给编辑器窗口的图片路径已经是带域名的全路径啦

*/

$imgPath = '@'.$dirname.'/'.$this->fileName;//获取生成的本地文件完整路径

//发送请求的参数

$data = [

'myFile'=>$imgPath,

'imgType'=>4

];

$serverUrl = 'http://img.com/api/image.action'; //请求地址

$ch = curl_init(); //初始化

curl_setopt($ch, CURLOPT_URL, $serverUrl);

curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);

curl_setopt($ch, CURLOPT_POST, true);

//https协议需要以下两行,否则请求不成功

curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, false);

//post方法所需要的参数

curl_setopt($ch, CURLOPT_POSTFIELDS, $data);

curl_setopt($ch, CURLOPT_HTTPHEADER, array());

$result = curl_exec($ch);

curl_close($ch);

$result = json_decode($result,true); //将接口返回的json数据转为数组

$this->fullName = $result['imgUrlNormal']; //重置要返回给编辑器窗口的图片路径,这一步可以让图片在编辑器内正常显示图片

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值