使用Codeigniter上传Valums Ajax:获取参数!

时间:2011-01-13 21:32:02

标签: codeigniter upload

如何使用Valums Uploader和Codeigniter的参数?

5 个答案:

答案 0 :(得分:5)

使用Valums,参数设置如下:

var uploader = new qq.FileUploader({
    element: document.getElementById('file-uploader'),
    action: '/server-side.upload',
    // additional data to send, name-value pairs
    params: {
        param1: 'value1',
        param2: 'value2'
    }
});

或使用

uploader.setParams({
   anotherParam: 'value' 
});

如果您希望它了解您的app /

的状态
subD="/Pic"
function selectGaleryName()
{
subD=subD+"/3"
alert(subD) // /Pic/3
}


var uploader = new qq.FileUploader({
element: document.getElementById('UploadFile'),
action: 'http://localhost/Farainform/manager/upload.php'
// additional data to send, name-value pairs

onComplete: function(id, fileName, responseJSON){ 

selectGaleryName();

uploader.setParams({
  subDirectory : subD
});

},


});

如果你想为图像设置一个id和一个描述,你可以在javascript中设置它们,然后发送它们。所以像(我在这里使用jQuery):

var description = $('#input_description').val(); //This can be an input 
var id = $('#input_description').att('id');

var uploader = new qq.FileUploader({
    element: document.getElementById('file-uploader'),
    action: '/server-side.upload',
    // additional data to send, name-value pairs
    params: {
        description: description,
        id: id
    }
});

注意我没有测试此代码及其用于演示目的。

答案 1 :(得分:2)

$ _ GET总是在1.7.3分支中销毁,但升级到新的CodeIgniter Reactor 2.0,你会发现GET字符串开箱即用。

upgraded时,请使用以下语法:

$this->input->get('value1');

答案 2 :(得分:1)

我不知道为什么没有在Valums页面上记录,但显然参数应该不是这样发送的

params: {
        param1: 'value1',
        param2: 'value2'}

但是像这样

data: {param1: 'value1',
       param2: 'value2'}

在服务器端,您可以使用 $ _ REQUEST ['param1']获取它们;

答案 3 :(得分:1)

您必须使用PHP的输入流才能获取数据。

$fp = fopen('php://input', 'r');

然后使用fread()通常使用常规文件读取数据。请参阅下载中位于server / php.php中的valum服务器端代码。

答案 4 :(得分:1)

我遇到的两个相关问题可能会帮助某人:

1)var 上传器会导致问题 - 请尝试使用 ajaxuploader 之类的内容

2)最新版本中记录的 setParams 不正确 - 应该是 setData

最终结果应该是这样的:

var ajaxuploader = new AjaxUpload(button, {
        action: 'your-server-script.php', 
        name: 'myfile',
        onSubmit : function(file, ext){

            ajaxuploader.setData({
               somevar : 'somevalue',
               anothervar : 'anothervalue'
            });
)};