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> 

测试.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 回答