首页 文章

如何在Grails中接收Angular $ http post多部分表单数据

提问于
浏览
2

如何从Grails接收角度$ http发布的多部分表单数据 . 在这里,我将Angular控制器的多部分表单数据发送到Grails . 我是Grails的新手 .

任何人都可以给我指导检索边界数据 . 我也不知道接收带有一些输入数据的图像文件数据的确切形式 .

Request headers in browser's network console:

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--

1 回答

  • 1

    干得好 . 只需在控制器中写下以下内容:

    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"
        }
    }
    

相关问题