1

Как получить угловые $ http post multipart данные формы от Grails. Здесь я отправил данные о многостраничной форме из углового контроллера в Grails. Я новичок в Grails.

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

заголовки запросов в сети консоли браузера:

Provisional headers are shown 
Accept:application/json, text/plain, */* 
Content-Type:multipart/form-data; boundary=----  
WebKitFormBoundary0p6R8BecvYqzcbMK 
Origin:file:// 
User-Agent:Mozilla/5.0 (iPhone; CPU iPhone OS 7_0 like Mac OS X; en-us)   
AppleWebKit/537.51.1 (KHTML, like Gecko) Version/7.0 Mobile/11A465  Safari/9537.53 
Request Payload 
------WebKitFormBoundary0p6R8BecvYqzcbMK 
Content-Disposition: form-data; name="rackImage"; filename="PhoneGap.png" 
Content-Type: image/png 


------WebKitFormBoundary0p6R8BecvYqzcbMK 
Content-Disposition: form-data; name="storeNo" 

HD1304 

------WebKitFormBoundary0p6R8BecvYqzcbMK 
Content-Disposition: form-data; name="rackQty" 

12 
------WebKitFormBoundary0p6R8BecvYqzcbMK-- 
+0

Похоже, вы пытаетесь получить данные, но используете запрос POST? Это не спокойный способ. Обычно HTTP GET используется для получения данных с сервера, а POST используется для отправки данных на сервер. – James

+0

Как выглядит ваш '$ http.post'? Что вы пробовали до сих пор в действии вашего контроллера? – tylerwal

ответ

0

Здесь вы идете. Просто напишите в контроллере следующее:

class MyController { 

    def upload() { 
     def multipartFile = params.rackImage 

     InputStream is 
     FileOutputStream fos 

     byte[] fileRead = new byte[1024] 
     File tempFile 

     try { 
      is = multipartFile.getInputStream() 
      String fileName = multipartFile.getOriginalFilename() 

      String path = "./" 

      fileName = fileName.replaceAll("[^a-zA-Z0-9//._-]+", "").toLowerCase() 

      tempFile = new File(path + "" + fileName) 
      fos = new FileOutputStream(tempFile); 
      int i = is.read(fileRead) 
      while (i != -1) { 
       fos.write(fileRead, 0, i); 
       i = is.read(fileRead); 
      } 
     } catch (FileNotFoundException e) { 
      log.error "Exception uploading", e 
     } catch (IOException e) { 
      log.error "Exception uploading", e 
     } finally { 
      fos?.close() 
      is?.close() 
     } 

     // Now access the File: "tempFile" 
    } 
}