workermen图片上传问题

 之前公司让用workerman框架去做中间层,把图片传到给java后台,之前有用过thinkphp封装过的curl方法,但同样的问题在workerman就出问题的,后面经过同事的提醒和浏览官方文档,发现workerman图片上传的方法跟之前php原生的不一样,之前php原生的上传是先把文件先保存到临时文件夹,所以在php原生直接接收就好,但workerman却不一样,它是文件流没保存为临时文件,而且上传文件参数类型也跟之前php不一样。
这是php原生上传的类型
  • $_FILES["file"]["name"] - 被上传文件的名称
  • $_FILES["file"]["type"] - 被上传文件的类型
  • $_FILES["file"]["size"] - 被上传文件的大小,以字节计
  • $_FILES["file"]["tmp_name"] - 存储在服务器的文件的临时副本的名称
  • $_FILES["file"]["error"] - 由文件上传导致的错误代码
注意HTTP文件上传中,WorkerMan的$_FILES结构与传统PHP中的$_FILES结构不同,WorkerMan中$_FILES结构类似
var_export($_FILES); array( 0 => array( 'file_name' => 'logo.png', // 文件名称 'file_size' => 23654, // 文件大小 'file_data' => '*****', // 文件的二进制数据 ), 1 => array( 'file_name' => 'file.tar.gz', // 文件名称 'file_size' => 128966, // 文件大小 'file_data' => '*****', // 文件的二进制数据 ), ... );
 
0
保存文件代码类似
// 例如保存到/tmp目录下 foreach($_FILES as $file_info) { file_put_contents('/tmp/'.$file_info['file_name'], $file_info['file_data']); }
 
0
WorkerMan中无法使用move_uploaded_file() is_uploaded_file()这些函数。
这个如果没认真去看文档就坑了一b
要做成跟之前的php上传一样,先把文件流保存到临时的文件夹,保存代码如上。
ps:感觉有用请点个赞,你的赞是我写下去动力​
posted @ 2022-02-11 11:39  全杀的天才  阅读(155)  评论(0)    收藏  举报