Valums Ajax Upload с Codeigniter: получить параметры! - PullRequest
5 голосов
/ 14 января 2011

Как использовать параметры с Valums Uploader и Codeigniter?

Ответы [ 5 ]

5 голосов
/ 14 января 2011

Со значениями параметры устанавливаются так:

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' 
});

если вы хотите, чтобы он знал о состоянии вашего приложения /

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
});

},


});

Если вы хотите установить идентификатор и описание для изображения, вы можете установить их в 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
    }
});

Примечание. Я не проверял этот код и его для демонстрационных целей.

2 голосов
/ 03 февраля 2011

$ _ GET всегда был уничтожен в ветке 1.7.3, но обновите его до нового CodeIgniter Reactor 2.0 , и вы обнаружите, что строки GET работают из коробки.

Когда обновлен , используйте этот синтаксис:

$this->input->get('value1');
1 голос
/ 27 февраля 2012

Две проблемы, с которыми я столкнулся, могут помочь кому-то:

1) var uploader вызывает проблемы - попробуйте использовать что-то вроде 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'
            });
)};
1 голос
/ 03 февраля 2011

Для получения данных необходимо использовать входной поток PHP.

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

Затем прочитайте данные, как обычно, с обычным файлом, используя fread().Обратитесь к серверному коду valum, который находится в файле server / php.php во время загрузки.

1 голос
/ 20 января 2011

Я не знаю, почему это не задокументировано на странице Valums, но, очевидно, параметры следует отправлять не так

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

Но вот так

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

На стороне сервера вы можете получить их с помощью $ _ REQUEST ['param1'];

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...