使用PHP createUploadUrl和选项Content = type image / jpeg将图像上传到Google云端存储时,我收到错误记录为
"Invalid options supplied: Content-Type..."
这是代码:
$options = [ 'gs_bucket_name' => 'mybucket', 'Content-Type' => 'image/jpeg' ];
$upload_url = CloudStorageTools::createUploadUrl('/upload.php', $options);
图像已上传,但显示为二进制/八位字节流文件(默认为GCS)。我也尝试了mimeType和image / jpg。我做错了什么?
答案 0 :(得分:2)
将Content-Type作为上下文的一部分传递给move_uploaded_file(),而不是作为createUploadURL选项的一部分。
答案 1 :(得分:0)
上传文件后,请不要像大多数文档中那样使用 move_uploaded_file(),因为在移动过程中会丢失类型信息。
更糟糕的是,如果您尝试在移动之前设置它并将类型设置为默认值 binary / octet-stream ,则会忽略 stream_context_create()。
只需使用重命名()代替 move_uploaded_file()。括号中的参数是相同的。
如果有帮助,这就是我的榜样。
简单的一个:
foreach($_FILES['userfile']['name'] as $idx => $name)
{
$original = $root_path . '/' . $name;;
rename($_FILES['userfile']['tmp_name'][$idx], $original);
}
这是一个更复杂的强制类型(如果你想要的话):
foreach($_FILES['userfile']['name'] as $idx => $name)
{
$original = $root_path . '/' . $name;
$options = ['gs' => ['Content-Type' => $_FILES['userfile']['type'][$idx]]];
stream_context_set_default($options);
rename($_FILES['userfile']['tmp_name'][$idx], $original);
}