2015-01-22 3 views
0

У меня есть код для загрузки изображения. Я использовал AjaxUpload.js плагин для uploading images without postback. Проблема в том, что когда я передаю жестко запрограммированные значения (будь то параметр запроса или помощник data), я могу получить это в моем обработчике. Но когда я передаю некоторое общее значение, например $('#some_id').val(), тогда я всегда получаю пустую строку в моем обработчике.Обработчик не получает запрошенные данные от AjaxUpload

SCRIPT

var upload=''; 
    upload = new AjaxUpload($('#fileOpenDialog'), 
    { 
     action: RootPath + 'GraphicResourceHandlers/FileHandler.ashx',   
     data: { OldGraphicName: $('#hidGraphicName').val() }, 
     type: 'POST',   
     contentType: "application/json; charset=utf-8", 
     dataType: 'json', 
     autoSubmit: false,   
     onChange: function (file, extension) { 

      //some code 
     }, 
     onSubmit: function (file, response) { 

      alert("Success."); 
     }, 
     onError: function() { 
      alert("Error in upload."); 
     }, 
     onComplete: function (file, response) { 

      //some code 
      } 
    }); 


    //upload image 
    $('#btnUpload').click(function() { 

     //This will call the AjaxUpload . 
     upload.submit(); 

     //Hides the modal that asks for uploading image 
     $('#browseFile').modal('hide'); 
    }); 

FileHandler.ashx

public void ProcessRequest(HttpContext context) 
    { 
     try 
     { 
      context.Response.ContentType = " text/html";   

      //This line is returning an empty string   
      context.Request["OldGraphicName"] 

      //I also did this while passing as a query paramter but no luck 
      context.Request.QueryString["OldGraphicName"] 

      string graphicPath = Config.GraphicsPath; 
      string locationPath = HttpContext.Current.Request.PhysicalApplicationPath + graphicPath; 
      string fileName = context.Request.Files[0].FileName; 
      string newFileName = Guid.NewGuid() + Path.GetExtension(fileName); 
      context.Request.Files[0].SaveAs(locationPath + newFileName); 
      context.Response.Write(newFileName); 

     } 
    } 

Может кто-то пожалуйста, разобраться в этом вопросе. Я действительно очень трудился, чтобы понять, что не так с моей стороны.

Спасибо!

+0

Я могу загрузить изображения на сервер, это ' скрипт с уникальными именами. Теперь мне нужно переименовать недавно загруженный файл со старым. Для этого я сохраняю старое имя изображения в скрытом поле и передаю его в качестве параметра через AjaxUpload для обработчика. –

+0

@Pete ?? Я забыл ссылаться на вас при добавлении моего комментария –

ответ

0

Вы пробовали это ..

var fileOpenDialog= $("#fileOpenDialog").val(); 

и в AJAX

data: {OldGraphicName: fileOpenDialog} 

извините, если я был неправ ....

+0

, что вы не видите мой код правильно. Я не передаю значение 'fileOpenDialog' обработчику, а я передаю значение скрытого поля' $ ('# hidGraphicName'). Val() '. Это не значение загружаемого изображения, а значение изображения, которое уже существует на сервере. Я хочу изменить имя загружаемого изображения с этим значением i.e. '$ ('# hidGraphicName'). Val()' –

Смежные вопросы