我使用提交按钮将文件上传到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()
,但仍在重新加载。
请帮忙。
答案 0 :(得分:2)
如果你使用iframe,这是可能的。
答案 1 :(得分:1)
return [optional value here];
下同一个区域内的任何内容都将被省略,因此e.preventDefault()
行永远不会被执行。return true
会告诉按钮表现正常,因此会尝试采取常规操作return false
和e.preventDefault()
将执行相同的操作(停止提交表单的文件),除了return false
另外阻止在文档中冒出点击事件。如果要无缝发送文件,可能需要使用iframe或使用jQuery发送数据,而不是让表单处理数据传输。
答案 2 :(得分:1)
您可以使用uploadify类型组件,该组件可以在提交表单之前上传文件
答案 3 :(得分:-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');