将$ _FILES重新发布到REST Slim Framework

时间:2015-07-10 08:32:22

标签: php curl slim

我的表单会将所有表单数据发布到名为upload.php的文件中。

问题是:是否可以重新发布多部分/表单数据,包括$ _FILES到我的REST SLIM框架,如下所示:

import config from './file.json';

config.string; // => "${foo} does things"

谢谢..

1 个答案:

答案 0 :(得分:1)

如果你想使用cUrl上传文件,你不能只传递你在$ _FILES数组中得到的文件名(temp / real),因为这是一个包装,PHP必须让你的生活变得轻松想要处理上传到服务器的文件。

您有两种选择:

选项1:
使用@告诉cUrl这不仅仅是一个变量,这是您要上传的文件。在这种情况下,php will post the file itself(而不仅仅是作为文件名称的字符串):

$curl_post_data['file1'] = "@" . $_FILES['uploaded_file1']['tmp_name'];

(我假设您的原始表单有<input type="file" name="uploaded_file1" />。请使用您的原始输入名称以使其正常工作)

选项编号2:
如果您使用PHP&gt; = 5.5,则可以使用新的CURLFile object,它可以为您提供相同的结果和一些不同的方法:

// Create a CURLFile object
$cfile = new CURLFile($_FILES['uploaded_file1']['tmp_name'], $_FILES['uploaded_file1']['type'], $_FILES['uploaded_file1']['name']);

// Assign POST data
$curl_post_data = array('file1' => $cfile);
curl_setopt($curl, CURLOPT_POST, 1);
curl_setopt($curl, CURLOPT_POSTFIELDS, $curl_post_data);

// Execute the handle
curl_exec($curl);