0

送信ボタンを使用して tomcat サーバーにファイルをアップロードしていますが、問題はページがリロードされることです。私が使用する場合return false、ファイルはアップロードされません。ファイルをアップロードしないボタンを使用しようとしました。

jstlクライアント側にJavaScriptを使用しています。

<form:form modelAttribute="uploadItem" name="frm" method="post"
    enctype="multipart/form-data">
    <fieldset>
        <legend>Upload File</legend>
        <table>
            <tr>
                <td><form:label for="fileData" path="fileData">File</form:label><br />
                </td>
                <td><form:input path="fileData" id="csv" type="file" /></td>
            </tr>
            <tr>
                <td><br /></td>
                <td><input id="subUpload" type="submit" value="Upload" /></td>
            </tr>
        </table>
    </fieldset>
</form:form>

私のJavaScriptの場合:

$("#subUpload").click(function(e) {
    var image = document.getElementById("csv").value;
    if(image!=''){
        var checkimg = image.toLowerCase();
            if (!checkimg.match(/(\.CSV|\.csv)$/)){
                alert("Please enter  Image  File Extensions .jpg,.png,.jpeg");
                document.getElementById("image").focus();
                return false;
            }
    }
    return true;
    e.preventDefault();
});

私も使用e.preventDefault()しましたが、まだリロードしています。

助けてください。

4

4 に答える 4

2

これは、iframe を使用する場合に可能です。

于 2012-09-19T02:44:20.697 に答える
1

フォームの送信前にファイルをアップロードできるuploadifyタイプのコンポーネントを使用できます

于 2012-09-19T06:13:51.920 に答える
1
  • の下および同じブロック内にあるものreturn [optional value here];はすべて省略されるため、e.preventDefault()行が実行されることはありません。
  • return trueボタンに通常の動作を指示するため、通常のアクションを実行しようとします
  • return false同じことを行いe.preventDefault()ます (フォームがファイルを送信するのを停止します) return false

ファイルをシームレスに送信したい場合は、フォームにそのデータ転送を処理させる代わりに、iframe を使用するか、jQuery を使用してデータを送信することをお勧めします。

于 2012-09-19T03:01:34.607 に答える
-1

フォームを作成する.. ex

<form name="form" method="post" enctype="multipart/form-data" action="test.php">
<input type="file" name="piture"  value="" onChange="window.document.forms['form'].submit();"/> </form> 

test.php

  if(preg_match('/[.](jpg)|(gif)|(png)$/', $_FILES['picture']['name'])) {  
    $rand=rand(000000000,9999999);
    $fl_name = $_FILES['picture']['name'];
    $expld = explode('.', $fl_name);
    $extnnew = $expld[1];
    $filename = $rand.'.'.$extnnew;  
    $source = $_FILES['picture']['tmp_name'];
    $path_to_image_directory = "uploads/"; 
    if(!is_dir($path_to_image_directory)){
mkdir($path_to_image_directory, 0777);
chmod($path_to_image_directory, 0777);} 

    $target = $path_to_image_directory . $filename;  
    move_uploaded_file($source, $target);  
    $sql ="insert into picture values('','".$filename."','Now()')";
    mysql_query($sql) or die(mysql_error());

                        } 
header('Location:page.php');
于 2013-04-29T09:55:55.907 に答える