用php通过curl上传文件

时间:2016-02-19 18:11:03

标签: php curl

我正在尝试通过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);

 }

?>

我搜索了很多关于这个问题的代码,其中大部分与上述代码非常相似。但在我的情况下,它们都不起作用。我真的不知道这里有什么问题。 有人能给我一些建议吗?非常感谢!

0 个答案:

没有答案