私は自分のサイトのファイルアップロードを管理するためにPluploadを使用しています。次のテストファイルに投稿するようにPluploadを設定すると、レコードが正しく表示されますが、CIコントローラに投稿すると、$ _POSTと$ _FILESの両方が空になります。
test.phpを
<?php print_r($_FILES); print_r($_POST); ?>
標準のHTMLフォームを使用して、その任意のアイデア何これを引き起こしているときCIが正しく$ _FILESと$ _POST配列を表示していますか?
EDIT はここpluploadの設定
var uploader = new plupload.Uploader({
runtimes : 'html5,html4,flash,silverlight,browserplus',
browse_button : 'pickfiles',
container : 'container',
max_file_size : '15mb',
url : '/test.php',
//url : '/upload/do_upload/',
flash_swf_url : '/js/plupload/plupload.flash.swf',
silverlight_xap_url : '/js/plupload/plupload.silverlight.xap',
filters : [
{title : "Documents", extensions : "pdf,doc,docx,rtf,txt"}
],
multipart_params : { job : -2 }
});
であり、ここで、コントローラ
class Upload extends CI_Controller {
function __construct()
{
parent::__construct();
}
function index()
{
$this->load->view('upload_form', array('error' => ' '));
}
function do_upload()
{
print_r($_POST);
print_r($_FILES);
$config['upload_path'] = 'incoming/';
$config['allowed_types'] = 'pdf|doc|docx|rtf|txt';
$config['max_size'] = '900';
$this->load->library('upload');
$this->upload->initialize($config); // MUST CALL ELSE config not loaded
if (! $this->upload->do_upload()) {
$error = array('error' => $this->upload->display_errors());
$this->load->view('upload_form', $error);
}
else {
$data = array('upload_data' => $this->upload->data());
$this->load->model('translation_model');
$this->translation_model->add_orig($job, $filePath);
$this->load->view('upload_success', $data);
}
}
}
AFAIKは、Codeigniterが '$ _POST'配列を空にし、参照とセキュリティのために' $ this-> input-> post'を使用します。ファイルアップロードの場合は、ファイルアップロードライブラリを使用できます。 – MacMac
いいえ、Codeigniterは '$ _POST'配列を空にしません。なぜ人々はそれを言っているのですか?クエリ文字列を無効にすると、CIは '$ _GET' *のみを解除します。 –
コードを送信していただきありがとうございます。 $ _FILESと$ _POSTが空であることをどのように確認していますか?アップロードがうまくいかないのであなたはそれを*仮定していますか? pluploadのアップロードスクリプトまたはその変形を使用する必要があります。単純にCIのアップロードハンドラをpluploadのものと交換することはできません。 –