我正在尝试通过REST将文件上传到我的数据库。这是html文件(这只是一个测试),它能够完成这项工作:
<form name="ZRXPupload" method="post" action="http:...." enctype="multipart/form-data">
File = <input type="file" name="file" accept="text/*" value="File" />
FormatType = <select name="formatType">
<option selected="selected">ZRXPV2R2</option>
</select>
<input type="submit" value="Upload file" formtarget ="_blank"/>
</form>
由于我需要隐藏我的REST(http)地址,我使用php(服务器端代码)来完成这项工作,而不是直接将文件上传到REST,请参阅代码:
<?php
if(isset($_POST['submit'])){
$post = array(
'file' =>'@'. $_FILES['file']['tmp_name'],
'formatType'=>'ZRXPV2R2'
);
$url = "http:........";
$ch = curl_init();
curl_setopt($ch, CURLOPT_COOKIEJAR, 'cookies.txt');
curl_setopt($ch, CURLOPT_COOKIEFILE, 'cookies.txt');
//this is to get the session cookie with my user name and pass word and it works fine.
curl_setopt($ch, CURLOPT_URL,$url);
curl_setopt($ch, CURLOPT_HTTPHEADER,array('content-type:application/octet-stream'));
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
echo $result;
curl_close($ch);
}
?>
我搜索了很多关于这个问题的代码,其中大部分与上述代码非常相似。但在我的情况下,它们都不起作用。我真的不知道这里有什么问题。 有人能给我一些建议吗?非常感谢!