PHP NetSuite客户端上传文件至文件柜,文件内容损坏问题求助
NetSuite文件上传内容损坏问题解决建议
问题分析
文件能在指定文件夹创建,但下载后显示损坏,打开是base64字符串——原因是你手动对文件内容做了base64编码,而attachFrom = FileAttachFrom::_computer场景下,NetSuite客户端会自动处理内容编码,手动编码导致最终存储的是编码后的文本,而非原始二进制文件内容。
修正代码
$file = new File(); $file->folder = new RecordRef(); $file->folder->internalId = XXX; $file->name = 'filename.png'; $file->fileType = MediaType::_PNGIMAGE; $file->attachFrom = FileAttachFrom::_computer; // 直接传入原始二进制内容,无需base64编码 $content = file_get_contents($request->file('file')); $file->content = $content; $request = new AddRequest(); $request->record = $file; $addResponse = NetSuite::add($request);
补充说明
当使用attachFrom::_computer时,NetSuite的SOAP客户端会自动完成内容的编码工作。只有在使用其他上传方式(如attachFrom::_url)时,才需要对应调整内容格式,当前场景下直接传递原始二进制内容即可。
内容的提问来源于stack exchange,提问作者Samuel Hassid
相关产品推荐
相关产品推荐

