[英]Fileupload with curl. Php
我在项目中使用curl。 libcurl的版本是7.18.2。 这是一个错误(不起作用的文件类型),更多- 在这里 。 对于文件上传,我使用以下代码:
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);
}
请告诉我,如何在服务器上发送文件类型? 无法进行libcurl升级。 非常感谢。
谢谢。 我想过这个问题。 在问题中:
卷曲部分:
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;
}
}
}
服务器部分:
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.