Closed xiaoyouxi01 closed 6 years ago
看了下,我upload这里用了 realpath 来获取绝对路径。 试了下去掉它既可,当然前提是要先把执行路径切到文件所在路径,不然会读取失败。
http://php.net/curlfile 如果你当前版本支持curlfile的话,应该可以使用setPostFilename函数设置它的name
非常感谢指点!! 我看了下curlfile类,原来__construct方法里还有两个可选参数啊!第三个参数直接传入文件名就可以了!
// 兼容php5.3-5.6 curl模块的上传操作
$args = null;
if (class_exists('\CURLFile')) {
$args = array('media' => new \CURLFile(realpath($filePath), 'application/octet-stream', basename($filePath)));
var_dump($args);
} else {
$args = array('media' => '@' . realpath($filePath));
}
嗯嗯,和调用setPostFilename一样的,我改到git
用\api\examples\MediaTest.php测试,比如上传一个文件abc.docx。 上传后取得media_id,通过消息推送接口,将这个media_id以文件形式,通过某个自建应用发送给用户。 这时用户收到文件,显示的文件名是“D:\xxx\xxxx\xxxxx\xxxx\abc.docx”,文件名是整个路径。 能否修改下SDK,让上传的文件名还是原先的文件名?或者哪里可以设置下文件名吗?