我正试图将一个文件发送到box(云存储)。应该很容易,但事实并非如此。
我使用RequestBin进行调试。
在命令行上使用curl时,它工作得很好(文件被张贴到框中):
curl https://requestb.in/1bw1 -H "Authorization: Bearer supersecret" -H "Content-Type: multipart/form-data" -X POST -F file=@/tmp/testfile.pdf
卷曲cli(正确):
生坯
-------------------------------------------------------------------------------------------------name=“属性”
生坯
---------------------------------------------------------------------------------------------name=“属性”
{“name”:“testfile.pdf”,“parent”:{“id”:“42035106321”}}-------------------------------------------------------------------------------------------------------------------------name=“文件”
@../faxout/testfile.pdf---------------------------------------------------------------------------------------
这是克利里不一样,我不知道如何得到同样的结果。
我的PHP代码:
$dataFile = array(
'name' => $faxfilename,
'parent' => array(
'id' => $subfolderID,
)
);
$PostData= array(
'attributes' => json_encode($dataFile),
'file' => "@$target"
);
$headers3=array(
"Authorization: Bearer supersecret",
"Content-Type: multipart/form-data"
);
//$filesurl = "https://upload.box.com/api/2.0/files/content";
$filesurl = 'https://requestb.in/1bw1';
$curlFILE = curl_init();
curl_setopt_array($curlFILE, array(
CURLOPT_URL => $filesurl,
CURLOPT_HTTPHEADER => $headers3,
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => $PostData,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE
));
CURLOPT_POSTFIELDS => http_build_query($PostData),
'@'.realpath($target)
你在找卷发文件。
$curlFILE = curl_init ();
curl_setopt_array ( $curlFILE, array (
CURLOPT_URL => 'https://requestb.in/1bw1',
CURLOPT_HTTPHEADER => array (
"Authorization: Bearer supersecret"
),
CURLOPT_POST => TRUE,
CURLOPT_POSTFIELDS => array (
'file' => new CURLFile ( '/tmp/testfile.pdf' )
),
//CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => FALSE,
CURLOPT_SSL_VERIFYHOST => FALSE
) );
curl_exec($curlFILE);
另外,当使用multipart/form-data或application/x-www-urlencoded编码时,不要手动设置content-type头,curl会自动为您设置适当的头,而且与您不同,curl在这样做时不会出现任何错别字。
此外,如果设置选项时出现问题,curl_setopt_array将返回bool(false),您不应该忽略这些错误,因此我建议使用此函数,它将所有curl setopt错误转换为RuntimeException
function ecurl_setopt_array($ch, array $options) {
if (! curl_setopt_array ( $ch, $options )) {
throw new \RuntimeException ( 'curl_setopt_array failed. ' . curl_errno ( $ch ) . ': ' . curl_error ( $ch ) );
}
}
所以这个HTML代码以正确的格式提交数据给我。 谢了!
这几天我一直被这个问题难住了。如果有人能给我指出正确的方向,我将不胜感激!我一直在想如何通过facebooks graph api发布图像。 我从Facebook上下载了一张图片,它通过图形API显示在画布元素中。我正在修改这个元素,在上面画文本,然后想把它上传回facebook。我被上传卡住了。 以下是我看过的有帮助的链接,但我仍然卡住了: Facebook Graph API——使用JavaS
我试图在PHP中使用multipart/form-data头发布一个带有cURL的图像,因为我发送到的API期望图像以多部分形式发送。 我没有问题与API与其他请求;只有张贴图像是一个问题。 我在客户端使用此表单: 请求头中的content-type现在显示正确了。但是图像似乎没有像API所期望的那样正确地发送。不幸的是,我无法访问API... 感谢您的帮助,谢谢
我试图将一个文件发布到spring boot中使用Curl实现的restfulendpoint,但它抛出以下错误: 我一定是错过了一些基本的东西,但却看不出是什么。它正在寻找请求参数'file',但不确定如何通过curl发送。 提前致谢 更新: 我在下面的链接中尝试了解决方案
我想问一些问题,最近我不得不将我们的遗留应用程序迁移到weblogic,但有些功能不能使用(多部分post form),下面是我的代码: noticewrite.jsp: noticeProc.jsp 问题是,当我单击提交按钮时,文件存储到服务器,但文本字段和文本区域值没有存储到数据库,并引发错误: 我需要你的建议,这有什么问题?因为它在tomcat上工作得很好,但不能在weblogic下运行,谢
我正在开发一个Web应用程序的模块。要触发这个模块,我需要向服务器提交一些数据。对于简单的表单,ChromeDeveloper Tools中的工作正常(使用msys[git]中的curl),但是对于具有的发布请求,复制的字符串在windows shell中既不可用(cmd)或bash(msys表单);复制的文本类似于: 有什么办法可以让我用这个或者把它转换成有用的东西吗?