2015-10-07 16 views
6

Sto tentando di caricare un file utilizzando spring. Qui di seguito è il mio codice come sto lavorando su di esso ma se cerco di usarlo sto ottenendo questo response: Ottenere lo stato HTTP 400 - Il parametro "File" richiesto MultipartFile non è presente in primavera

stato HTTP 400

- 'file' richiesto MultipartFile parametro non è presente

io non ottenere ciò che il l'errore è

Sto utilizzando il client di riposo avanzato per il test e sto caricando il file come allegato.

mio JAVACODE:

@RequestMapping(value = "/upload",headers = "Content-Type=multipart/form-data", method = RequestMethod.POST) 
    @ResponseBody 
    public String upload(@RequestParam("file") MultipartFile file) 
    { 
     String name= "test.xlsx"; 
     if (!file.isEmpty()) { 
      try { 
       byte[] bytes = file.getBytes(); 
       BufferedOutputStream stream = 
         new BufferedOutputStream(new FileOutputStream(new File(name))); 
       stream.write(bytes); 
       stream.close(); 
       return "You successfully uploaded " + name + "!"; 
      } catch (Exception e) { 
       return "You failed to upload " + name + " => " + e.getMessage(); 
      } 
     } else { 
      return "You failed to upload " + name + " because the file was empty."; 
     } 
    } 
+1

Puoi condividere la vostra richiesta? – Patrick

+0

\t

\t \t file da caricare:

Premere qui per caricare il file! \t
Labeo

+0

Solo una prova. Aggiungi 'class =" file "' all'input. '' – Patrick

risposta

7

Primavera ha bisogno il fagiolo

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />

per gestire file-upload.

È necessario registrare questo bean nel file application context.

Anche il tipo di contenuto deve essere valido. Nel tuo caso enctype="multipart/form-data"

Edit1:

Si può dare l'upload e la dimensione della memoria per le proprietà del bean:

<bean id="multipartResolver" 
     class="org.springframework.web.multipart.commons.CommonsMultipartResolver"> 
     <!-- max upload size in bytes --> 
     <property name="maxUploadSize" value="20971520" /> <!-- 20MB --> 

     <!-- max size of file in memory (in bytes) --> 
     <property name="maxInMemorySize" value="1048576" /> <!-- 1MB --> 

    </bean> 
+0

non posso cambiare il tipo di contenuto in qualche altra cosa – Labeo

+0

Dipende dal tipo di contenuto che tu o il client volete inviare e il server riceve. Penso che dovrebbe funzionare anche con'application/json'. – Patrick

+0

Qual è la dimensione massima del file da caricare – Labeo

2

quando si seleziona il file in anticipo client resto, sul lato destro c'è una scatola ingresso, scrivere in quel nome casella di input del parametri, nel tuo nome caso di parametro è il nome del file

parametro definito qui controller @RequestParam ("file")

enter image description here

+0

sto facendo lo stesso ma lo stesso errore – Labeo

+0

vedi screenshot che ho aggiornato –

+0

sì sto usando in thatb modo – Labeo

Problemi correlati