简体   繁体   English

带有卷曲的文件上传。 p

[英]Fileupload with curl. Php

I use curl in my project. 我在项目中使用curl。 Version of the libcurl is 7.18.2. libcurl的版本是7.18.2。 It's a bug (does't work filetype), more - here . 这是一个错误(不起作用的文件类型),更多- 在这里 For fileupload I use this code: 对于文件上传,我使用以下代码:

if ( !empty($_POST) ){
     $post = $_POST;
 }

if ( !empty($_FILES) ){
   foreach ($_FILES as $param => $file) {
         if ( $file['tmp_name'] )
                $files[$param] = '@' . $file['tmp_name'] . ';filename=' . $file['name'] . ';type=' . $file['type'];
   }
}

$post = !empty($files) ? array_merge($post, $files) : $post;

// ...

if ( $curl = curl_init() ) {

  curl_setopt($curl, CURLOPT_URL, $link);
  curl_setopt($curl, CURLOPT_USERAGENT, $browser);
  curl_setopt($curl, CURLOPT_REFERER, $reffer);
  curl_setopt($curl, CURLOPT_POST, true);
  curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
  curl_setopt($curl, CURLOPT_FOLLOWLOCATION, true);
  curl_setopt($curl, CURLOPT_COOKIE, $cookie);

  if ( !empty($post) ) {
        curl_setopt($curl, CURLOPT_POSTFIELDS, $post);
  }

  $content = curl_exec($curl);

  curl_close ($curl);
}

Please tell me, how I can send type of a file on a server? 请告诉我,如何在服务器上发送文件类型? The libcurl upgrade is not possible. 无法进行libcurl升级。 Thanks a lot. 非常感谢。

Thanks. 谢谢。 I thought about it. 我想过这个问题。 In the issue: 在问题中:

curl part: 卷曲部分:

if ( !empty($_FILES) ){

        foreach ($_FILES as $param => $file) {

            if ( $file['tmp_name'] ){

                $post[$param]='@' . $file['tmp_name'];
                $post['_ftype']=$file['type'];
                $post['_ffilename']=$file['name'];
                $post['_ffileuploadname']=$param;
            }
        }
}

server part: 服务器部分:

if ( !empty($_FILES) && isset($_POST['_ffileuploadname']) ){

    $name=$_POST['_ffileuploadname'];
    $_FILES[$name]['type']=$_POST['_ftype'];
    $_FILES[$name]['name']=$_POST['_ffilename'];
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM