2016-03-18 41 views
0

我正嘗試上傳文件到服務器。這是我的表單代碼。在POST中沒有收到任何數據

<form method="POST" action="<%request.getContextPath();%>/OPMS/webl" enctype="multipart/form-data"> 


<input type="hidden" name="handler" value="fileupload" /> 
<input type="hidden" name="user" value="${dev.getUserId()}" /> 
<input type="file" id="fileLoader" name="files" title="Load File" /> 
<button type="button" class="btn btn-primary" onClick="openFileChooser();"><em class="fa"></em> Choose File</button> 
<button type="submit" class="btn btn-primary"><em class="fa fa-upload"></em> Upload </button> 
</form> 

問題是我無法從屬性中獲取數據。當我檢查處理程序時,它返回null。但如果我改變方法GET我可以正確查看請求中的參數,但獲取將無法使用的表單enctype的類型。

+0

您是否收到錯誤消息?我們需要查看您正在使用的代碼來嘗試並接收文件。 – jagler

+0

我嘗試請求時收到空指針異常。 getParameter(「handler」)。equals(「fileupload」) –

回答

0

如果你只是希望把工作做好,我建議Ravishanker庫蘇馬的Hayageek jQuery File Upload plugin

http://hayageek.com/docs/jquery-upload-file.php

他打破了過程分爲三個簡單的步驟,基本上是這樣的:

<head> 
    <link href="http://hayageek.github.io/jQuery-Upload-File/uploadfile.min.css" rel="stylesheet"> // (1) 
    <script src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script> 
    <script src="http://hayageek.github.io/jQuery-Upload-File/jquery.uploadfile.min.js"></script> // (1) 
</head> 
<body> 
    <div id="fileuploader">Upload</div> // (2) 
    <script> 
     $(document).ready(function(){ 
      $("#fileuploader").uploadFile({ // (3) 
       url:"my_php_processor.php", 
       fileName:"myfile" 
      }); 
     }); 
    </script> 
</body> 

最後一步是讓jQuery代碼中指定的PHP文件(在本例中爲my_php_processor.php)接收並處理文件:

my_php_processor.php:

<?php 
    $output_dir = "uploads/"; 
    $theFile = $_FILES["myfile"]["name"]; 
    move_uploaded_file($_FILES["myfile"]["tmp_name"],$output_dir.$fileName); 

myfile注之間的PHP($_FILES["myfile"])和jQuery代碼塊中指定的文件名的關係。

+0

我使用jsp ..那麼,什麼類型必須是文件? –

+0

對不起,我應該注意到,在你的代碼中,它應該在問題(標籤)中指定。此解決方案可能無法爲您工作。 – gibberish