服务器端的文件上传文件始终为false [英] File upload hasfile always false in server side

查看:73
本文介绍了服务器端的文件上传文件始终为false的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

 <   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.C​​lick

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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆