服务器端的文件上传文件始终为false [英] File upload hasfile always false in server side
问题描述
< asp:ScriptManager ID = ScriptManager1 runat = server >
< / asp:ScriptManager >
< asp:UpdatePanel ID = UpdatePanel1 UpdateMode = 始终 runat = 服务器 >
< ContentTemplate >
< div 类 = 控制 > ;
< asp:FileUpload id = file CssClass = btn btn-success span3 runat = server / >
< ; / div >
< div class = 控制 >
< asp:FileUpload id = file1 CssClass = btn btn-success span3 runat = server / >
< / div >
< asp:Button id = btnSubmit runat = server CssClass = btn btnprimary 文字 = 提交 OnClientClick = return validate(); OnClick = btnSubmit_click / >
< asp:按钮 id = btnUpdate runat = server CssClass = btn btn-成功 文字 = 更新 OnClientClick = return validate(); OnClick = btnUpdate_click / >
< 触发器 >
< asp:PostBackTrigger ControlID = btnSubmit / >
< asp:PostBackTrigger ControlID = btnUpdate / >
我尝试过:
以上代码运行完美localhost但不在线服务器端
文件上传不异步UpdatePanel内工作。如果您想要asynch上传,请使用支持此功能的jquery插件,或使用Ajax Toolkit。谷歌了解更多信息和示例。
在PageLoad代码中添加..
Page.Form.Attributes.Add(enctype ,multipart / form-data)
在网页上....
< asp:updatepanel id =UpdatePanel6runat =server>
< triggers> < asp:postbacktrigger controlid =btnFileUpload>
< contenttemplate>
< asp:fileupload id =FileUpload1runat =serverwidth =99%allowmultiple =True > < asp:button id =btnFileUploadrunat =servertext =Uploadfont-size =x-smallwidth =75 onclick =btnFileUpload_Click>
代码中有上传处理程序..
'--------------------------------------- ------------------------------------
'Upl oadButton_Click
'---------------------------------------- -----------------------------------
Protected Sub btnFileUpload_Click(ByVal sender As Object,ByVal e As EventArgs)处理btnFileUpload.Click
lblUpLoadErr.Text =
尝试
如果FileUpload1.HasFile则
For Each fle As HttpPostedFile In FileUpload1.PostedFiles
如果ExtCheck(fle.FileName)那么
Dim fileName As String = Path.GetFileName(fle.FileName)
Dim newPath As String = TreeView1.SelectedNode.Value
如果不是Directory.Exists(newPath) )然后
Directory.CreateDirectory(newPath)
结束如果
Dim newfullFilename As String = myDir +\+ fileName
fle.SaveAs(newfullFilename)
Else
lblUpLoadErr.Text + =非法文件名,
结束如果
下一页
lblUpLoadErr.Text = String.Format({0}文件已成功上传。,FileUpload1.PostedFiles.Count)
LoadFiles()
结束如果
Catch ex As Exception
lblUpLoadErr.Text =上传文件时出错。 + ex.Message
结束尝试
结束子
我已经在生产中使用了一段时间了...我还将myDir保留为undefined,因为这是存储文件的路径..
问候,
<asp:ScriptManager ID="ScriptManager1" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" UpdateMode="Always" runat="server">
<ContentTemplate>
<div class="controls">
<asp:FileUpload id="file" CssClass="btn btn-success span3" runat="server" />
</div>
<div class="controls">
<asp:FileUpload id="file1" CssClass="btn btn-success span3" runat="server" />
</div>
<asp:Button id="btnSubmit" runat="server" CssClass="btn btnprimary" Text="Submit" OnClientClick="return validate();" OnClick="btnSubmit_click"/>
<asp:Button id="btnUpdate" runat="server" CssClass="btn btn-success" Text="Update" OnClientClick="return validate();" OnClick="btnUpdate_click"/>
<triggers>
<asp:PostBackTrigger ControlID = "btnSubmit" />
<asp:PostBackTrigger ControlID = "btnUpdate" />
What I have tried:
above code run perfect localhost but not working online server side
FileUpload doesn't work inside an asynchronous updatepanel. If you want asynch uploads then use a jquery plug-in that supports this, or use the Ajax Toolkit. Google for more info and examples.
In PageLoad Code Add ..
Page.Form.Attributes.Add("enctype", "multipart/form-data")
On webpage ....
<asp:updatepanel id="UpdatePanel6" runat="server">
<triggers> <asp:postbacktrigger controlid="btnFileUpload">
<contenttemplate>
<asp:fileupload id="FileUpload1" runat="server" width="99%" allowmultiple="True"> <asp:button id="btnFileUpload" runat="server" text="Upload" font-size="x-small" width="75" onclick="btnFileUpload_Click">
In Code Have Upload Handler..
' ---------------------------------------------------------------------------
' UploadButton_Click
' ---------------------------------------------------------------------------
Protected Sub btnFileUpload_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnFileUpload.Click
lblUpLoadErr.Text = ""
Try
If FileUpload1.HasFile Then
For Each fle As HttpPostedFile In FileUpload1.PostedFiles
If ExtCheck(fle.FileName) Then
Dim fileName As String = Path.GetFileName(fle.FileName)
Dim newPath As String = TreeView1.SelectedNode.Value
If Not Directory.Exists(newPath) Then
Directory.CreateDirectory(newPath)
End If
Dim newfullFilename As String = myDir + "\" + fileName
fle.SaveAs(newfullFilename)
Else
lblUpLoadErr.Text += "Illegal Filename,"
End If
Next
lblUpLoadErr.Text = String.Format("{0} files have been uploaded successfully.", FileUpload1.PostedFiles.Count)
LoadFiles()
End If
Catch ex As Exception
lblUpLoadErr.Text = "Error in uploading file." + ex.Message
End Try
End Sub
I have been using this in production for awhile... I also left myDir undefined as that is the path where to store the file..
Regards,
这篇关于服务器端的文件上传文件始终为false的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!