62,046
社区成员
发帖
与我相关
我的任务
分享
<!DOCTYPE html>
<script runat="server">
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim request As HttpRequest = System.Web.HttpContext.Current.Request
Dim FileCollect As HttpFileCollection = request.Files
If FileCollect.Count > 0 Then
Dim sqlString As String = "update T_O_Order set verifiednum=" + request("verifiedNum") + ",producenum=" + request("produceNum") + ","
Dim filename As String
Dim FileSave As HttpPostedFile = FileCollect(0)
filename = DateTime.Now.ToString("yyMMddHHmmssff")
If FileSave.FileName <> "" Then
filename += FileSave.FileName.Split("\")((FileSave.FileName.Split("\").Length - 1))
sqlString += " img='../../content/upimg/" & filename & "'"
FileSave.SaveAs(Server.MapPath("/Content/upImg/" & filename))
End If
sqlString += " where orderid=" & Session("orderid")
Dim conn As Data.SqlClient.SqlConnection = New Data.SqlClient.SqlConnection(transportation.Dao.BaseDao.ConnectionString)
conn.Open()
Dim cmd As Data.SqlClient.SqlCommand = New Data.SqlClient.SqlCommand(sqlString, conn)
Try
cmd.ExecuteNonQuery()
Catch ex As Exception
transportation.Dao.BaseDao.writeLog(sqlString, "Null")
End Try
sqlString = "INSERT INTO t_log(type,oplog,optime,opid) VALUES(1,'" & "运输订单号‘" & Session("orderid") & "’的磅单" & filename & " 由司机‘" & Session("name") & "’上传" & "',CONVERT(varchar(100), GETDATE(), 20)," & Session("operatorid") & ")"
cmd = New Data.SqlClient.SqlCommand(sqlString, conn)
cmd.ExecuteNonQuery()
conn.Close()
End If
End Sub
Protected Sub LinkButton2_Click(sender As Object, e As EventArgs)
Response.Redirect("driverDetail.aspx?id=" & Session("orderid"))
'Response.Write("<script language=javascript>history.go(-2);<" & "/script>")
End Sub
</script>
<html>
<head>
<title>上传图片</title>
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=0, minimum-scale=1.0, maximum-scale=1.0">
<meta content=”yes” name=”apple-mobile-web-app-capable” />
<meta content=”black” name=”apple-mobile-web-app-status-bar-style” />
<meta content="telephone=no,email=no" name="format-detection" />
<link rel="stylesheet" href="../content/style.css" media="screen" type="text/css" />
<script type="text/javascript" src="../Content/assets/js/jquery-1.8.1.min.js"></script>
<script type="text/javascript" src="../scripts/jquery.rotate.min.js"></script>
<script type="text/javascript">
function fileSelected() {
var file = document.getElementById('fileToUpload').files[0];
if (file) {
var fileSize = 0;
if (file.size > 1024 * 1024)
fileSize = (Math.round(file.size * 100 / (1024 * 1024)) / 100).toString() + 'MB';
else
fileSize = (Math.round(file.size * 100 / 1024) / 100).toString() + 'KB';
document.getElementById('fileName').innerHTML = '文件名: ' + file.name;
document.getElementById('fileSize').innerHTML = '文件大小: ' + fileSize;
document.getElementById('fileType').innerHTML = '文件类型: ' + file.type;
}
}
function uploadFile() {
var pNum = document.getElementById('produceNum').value;
var vNum = document.getElementById('verifiedNum').value;
if (pNum == "" || vNum == "")
{
alert('相关数量不能为空');
}
else
{
if (document.getElementById('fileToUpload').files[0] != null) {
var fd = new FormData();
alert(document.getElementById('fileToUpload').files[0]);
fd.append("fileToUpload", document.getElementById('fileToUpload').files[0]);
fd.append("produceNum", document.getElementById('produceNum').value);
fd.append("verifiedNum", document.getElementById('verifiedNum').value);
var xhr = new XMLHttpRequest();
xhr.upload.addEventListener("progress", uploadProgress, false);
xhr.addEventListener("load", uploadComplete, false);
xhr.addEventListener("error", uploadFailed, false);
xhr.addEventListener("abort", uploadCanceled, false);
xhr.open("POST", "test.aspx");
xhr.send(fd);
location.href="driverdetail.aspx?id=<%=Session("orderid")%>";
}
else
{
alert('图片不能为空');
}
}
}
function uploadProgress(evt) {
if (evt.lengthComputable) {
var percentComplete = Math.round(evt.loaded * 100 / evt.total);
document.getElementById('progressNumber').innerHTML = percentComplete.toString() + '%';
}
else {
document.getElementById('progressNumber').innerHTML = 'unable to compute';
}
}
function uploadComplete(evt) {
alert("上传成功");
}
function uploadFailed(evt) {
alert("文件上传失败");
}
function uploadCanceled(evt) {
alert("文件上传取消");
}
</script>
</head>
<body>
<form id="form1" enctype="multipart/form-data" method="post" >
<div class="row">
<label for="fileToUpload">选择手机中的磅单图片</label><br /><br />
<input type="file" name="fileToUpload" id="fileToUpload" onchange="fileSelected();"/>
</div>
<div id="fileName"></div>
<div id="fileSize"></div>
<div id="fileType"></div>
<div class="row">
<br /><br />
<div>
出厂数量:<input type="text" name="produceNum" id="produceNum" Style="border: 0; border-bottom: 1px solid black; background: transparent" "><br />
验收数量:<input type="text" name="verifiedNum" id="verifiedNum" Style="border: 0; border-bottom: 1px solid black; background: transparent"><br /><br />
</div>
<input type="button" onclick="uploadFile()" value="确认交货" />
</div>
<br />
<div id="progressNumber"></div>
</form>
</body>
</html>
location.href="driverdetail.aspx?id=<%=Session("orderid")%>";
这一句 是xhr.send(fd);过后马上就执行跳转了,但是xhr.send(fd);是异步的,所以完全会可能文件没有传完就跳转,当然要报错,但是其他两个浏览器不报错我也不知道怎么回事。。。
总之 我把跳转改到回调函数里面,就不会出错了
代码如下,解决问题
function uploadComplete(evt) {
alert("上传成功");
location.href="driverdetail.aspx?id=<%=Session("orderid")%>";
}
function uploadFailed(evt) {
alert("文件上传失败");
location.href="driverdetail.aspx?id=<%=Session("orderid")%>";
}
function uploadCanceled(evt) {
alert("文件上传取消");
location.href="driverdetail.aspx?id=<%=Session("orderid")%>";
}