За последние 24 часа нас посетили 17427 программистов и 1271 робот. Сейчас ищет 1421 программист ...

ajax upload дополнительные аргументы запроса

Тема в разделе "JavaScript и AJAX", создана пользователем macaroshka, 10 мар 2011.

  1. macaroshka

    macaroshka Активный пользователь

    С нами с:
    9 ноя 2009
    Сообщения:
    31
    Симпатии:
    0
    Здравствуйте!!!! Очень жду помощи, второй день не могу разобраться.

    есть диалоговое окно с полем ввода в которм при вызове окна автоматически появляется запись, например "47" Код:
    Код (Text):
    1. <input type="text" name="idobj" readonly=true id="idobj"/>

    и есть кнопка для загрузки файла, Код:

    Код (Text):
    1. <div id="upload" ><h3>Выбрать файл </h3>  
    2. <input type="button"  value="Загрузить"></div>
    3. <div id="status" ></div><div id="files" ></div>

    при вызове которой вызывается функция

    [js] $(function(){

    var btnUpload=$('#upload');
    var status=$('#status');
    var invid =jQuery('#idobj').val();
    new AjaxUpload(btnUpload, {

    action: 'upload_file.php?idobj='+invid,
    name: 'uploadfile',
    onSubmit: function(file, ext){
    if (! (ext && /^(jpg|png|jpeg|doc)$/.test(ext))){
    status.text('Поддерживаемые форматы JPG, PNG или GIF');
    return false;
    }
    status.text('Загрузка...');
    },
    onComplete: function(file, response){
    //On completion clear the status
    status.text('');
    //Add uploaded file to list
    if(response==="success"){
    $('<div></div>').appendTo('#files').html('Файл загружен'+file+''+file).addClass('success');
    } else{
    $('<div></div>').appendTo('#files').text('Файл не загружен' + file).addClass('error');
    }
    }
    }
    );

    });
    [/js]

    в нее передается запись "47"
    необходимо что бы файл сохранился в папку с таким же названием

    файл обработки запроса

    PHP:
    1.  
    2. $dir=$_POST['idobj'];
    3. $uploaddir = './save/'.$dir.'/';
    4. $file = $uploaddir . basename($_FILES['uploadfile']['name']);
    5.  
    6. $ext = substr($_FILES['uploadfile']['name'],strpos($_FILES['uploadfile']['name'],'.'),strlen($_FILES['uploadfile']['name'])-1);
    7. $filetypes = array('.doc','.gif','.bmp','.png','.JPG','.BMP','.GIF','.PNG','.jpeg','.JPEG');
    8.  
    9. if(!in_array($ext,$filetypes)){
    10.    echo "<p>Данный формат файлов не поддерживается</p>";}
    11. else{
    12.    if (move_uploaded_file($_FILES['uploadfile']['tmp_name'], $file)) {
    13.      echo "success";
    14.    } else {
    15.       echo "error";
    16.    }
    17. }
    18.  


    Сейчас файл записывается в папку "save", почему то функция не хочет передавать название нужной папки, може я не правильно считываю саму апись и передаю?
    [js] var invid =jQuery('#idobj').val();
    ...
    action: 'upload_file.php?idobj='+invid,[/js]
     
  2. disasterovich

    disasterovich Активный пользователь

    С нами с:
    25 мар 2011
    Сообщения:
    4
    Симпатии:
    0
    в onSubmit: function( file, ext ) написать:
    Код (Text):
    1.  
    2. this._settings.action = 'upload_file.php?idobj=' + jQuery('#idobj').val();
    если кто знает способ красивее напишите