<script language="VB" runat="server"> Sub UploadFile(sender As Object, e As EventArgs)If FileUp.PostedFile.ContentLength = 0 Then FileInfo.Visible = False Exit Sub Else FileInfo.Visible = True FDisplay1.Visible = True End IfFSize.Text ="上传文件大小"+ CStr(FileUp.PostedFile.ContentLength/1024)+"KB" FName.Text = "已上传文件名:"+FileUp.PostedFile.FileName+"<br>"+FName.Text'写入数据库 on error resume next dim myconn as sqlconnection dim mycomm as sqlcommand dim sql as string dim id as integer Dim image,anewimage As System.Drawing.Image dim width,height,newwidth,newheight as integer Dim callb As System.Drawing.Image.GetThumbnailImageAbort myConn=New sqlconnection(ConfigurationSettings.AppSettings("数据库")) myconn.open() sql="insert into picture (姓名,班级,介绍,属性) values ('"&request.cookies("dgxyl").values("dgxylname")&"','"&request.cookies("dgxyl").values("dgxylbj")&"','"&trim(request("TextBox1"))&"','"&request("r1")&"')" Mycomm=New sqlcommand(sql,myconn) mycomm.executenonquery() myconn.close()Dim myCommand As New SqlCommand("select top 1 id from picture order by id desc", myConn) myCommand.Connection.Open() Dim myReader As SqlDataReader=mycommand.executereader() if myReader.Read() then id=myReader("id") end if myconn.close() '保存图片 FileUp.PostedFile.SaveAs( Server.MapPath("\classpic\")&cstr(id)&".jpg" ) '生成缩略图 image=System.Drawing.Image.FromFile(Server.MapPath("/classpic/"+cstr(id)+".jpg")) width=image.Width height=image.height if width>height then newwidth=250 newheight=image.height/image.Width*newwidth else newheight=250 newwidth=image.Width/image.height*newheight end if response.write("id="+cstr(id)+"width="+cstr(Width)+";height="+cstr(height)+" ") response.write("newwidth="+cstr(newwidth)+";newheight="+cstr(newheight)+"<br>")aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,new System.IntPtr()) aNewImage.Save(Server.MapPath("/smallpic/"+cstr(id)+".jpg")) image.Dispose() Dim FileSplit() As String = Split( FileUp.PostedFile.FileName, "\" ) Dim FileName As String = FileSplit(FileSplit.Length-1) Dim Exts() As String = Split( FileName, "." ) Dim Ext As String = LCase(Exts(Exts.Length-1))FDisplay.Text = "<A Target='_blank' HREF='/classpic/"&cstr(id)&".jpg"& "'>查看上传文件</A>" FDisplay1.text="<a href='/picture/default.asp?bj="&cstr(request.cookies("dgxyl").values("dgxylbj"))&"'>返回</a>" End Sub </script> <SCRIPT language=JavaScript> <!-- var requestsubmitted=false; function guestbook_Validator(theForm) { //检查是否从新提交 if (requestsubmitted==true){ alert("你已经提交了留言,请等待服务器应答!"); return(false); } requestsubmitted=true;return (true); } //--> </SCRIPT> <Html> <Body BgColor=White> <H3 align="center">请正确填写下面各项</h3> <Hr></H3> <Div id="FileInfo" Visible="False" runat="server"> <Asp:Label id="FSize" runat="server"/><br> <Asp:Label id="FName" runat="server"/><br> <Asp:Label id="FDisplay" runat="server"/> <Asp:Label id="FDisplay1" runat="server"/> </Div> <Form Enctype="multipart/form-data" onsubmit="return guestbook_Validator(this)" runat="server"> 上传文件 <Input Type="File" id="FileUp" runat="server" size="20"><br> 图片属性:<input type="radio" value="<%=request.cookies("dgxyl").values("dgxylbj")%>" name="R1" checked>本班<input type="radio" value="全校" name="R1">全校(本班则只在本班显示,全校则在全校显示)<P> 图片说明:<br> <asp:TextBox id="TextBox1" runat="server" Width="233px" Height="141px"> </asp:TextBox> <asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="请输入图片说明"> </asp:RequiredFieldValidator><br> <Asp:button id="Upload" OnClick="UploadFile" Text="上传图片" runat="server"/> </form> <Hr> <p>注意:</p> <ol> <li><b>严禁上传污染环境的照片,否则账号将被删除!</b></li> <li><font color="#808000"><b>请详细填写照片说明,图片说明不详细将会被视为乱传图片,将会被删除!</b></font></li> </ol> <p> </p></Body> </Html>
Sub UploadFile(sender As Object, e As EventArgs)If FileUp.PostedFile.ContentLength = 0 Then
FileInfo.Visible = False
Exit Sub
Else
FileInfo.Visible = True
FDisplay1.Visible = True
End IfFSize.Text ="上传文件大小"+ CStr(FileUp.PostedFile.ContentLength/1024)+"KB"
FName.Text = "已上传文件名:"+FileUp.PostedFile.FileName+"<br>"+FName.Text'写入数据库
on error resume next
dim myconn as sqlconnection
dim mycomm as sqlcommand
dim sql as string
dim id as integer
Dim image,anewimage As System.Drawing.Image
dim width,height,newwidth,newheight as integer
Dim callb As System.Drawing.Image.GetThumbnailImageAbort
myConn=New sqlconnection(ConfigurationSettings.AppSettings("数据库"))
myconn.open()
sql="insert into picture (姓名,班级,介绍,属性) values ('"&request.cookies("dgxyl").values("dgxylname")&"','"&request.cookies("dgxyl").values("dgxylbj")&"','"&trim(request("TextBox1"))&"','"&request("r1")&"')"
Mycomm=New sqlcommand(sql,myconn)
mycomm.executenonquery()
myconn.close()Dim myCommand As New SqlCommand("select top 1 id from picture order by id desc", myConn)
myCommand.Connection.Open()
Dim myReader As SqlDataReader=mycommand.executereader()
if myReader.Read() then
id=myReader("id")
end if
myconn.close()
'保存图片
FileUp.PostedFile.SaveAs( Server.MapPath("\classpic\")&cstr(id)&".jpg" )
'生成缩略图
image=System.Drawing.Image.FromFile(Server.MapPath("/classpic/"+cstr(id)+".jpg"))
width=image.Width
height=image.height
if width>height then
newwidth=250
newheight=image.height/image.Width*newwidth
else
newheight=250
newwidth=image.Width/image.height*newheight
end if
response.write("id="+cstr(id)+"width="+cstr(Width)+";height="+cstr(height)+" ")
response.write("newwidth="+cstr(newwidth)+";newheight="+cstr(newheight)+"<br>")aNewImage=image.GetThumbnailImage(newwidth,newheight,callb,new System.IntPtr())
aNewImage.Save(Server.MapPath("/smallpic/"+cstr(id)+".jpg"))
image.Dispose()
Dim FileSplit() As String = Split( FileUp.PostedFile.FileName, "\" )
Dim FileName As String = FileSplit(FileSplit.Length-1)
Dim Exts() As String = Split( FileName, "." )
Dim Ext As String = LCase(Exts(Exts.Length-1))FDisplay.Text = "<A Target='_blank' HREF='/classpic/"&cstr(id)&".jpg"& "'>查看上传文件</A>"
FDisplay1.text="<a href='/picture/default.asp?bj="&cstr(request.cookies("dgxyl").values("dgxylbj"))&"'>返回</a>"
End Sub
</script>
<SCRIPT language=JavaScript>
<!--
var requestsubmitted=false;
function guestbook_Validator(theForm)
{
//检查是否从新提交
if (requestsubmitted==true){
alert("你已经提交了留言,请等待服务器应答!");
return(false);
}
requestsubmitted=true;return (true);
}
//-->
</SCRIPT>
<Html>
<Body BgColor=White>
<H3 align="center">请正确填写下面各项</h3>
<Hr></H3>
<Div id="FileInfo" Visible="False" runat="server">
<Asp:Label id="FSize" runat="server"/><br>
<Asp:Label id="FName" runat="server"/><br>
<Asp:Label id="FDisplay" runat="server"/>
<Asp:Label id="FDisplay1" runat="server"/>
</Div>
<Form Enctype="multipart/form-data" onsubmit="return guestbook_Validator(this)" runat="server">
上传文件
<Input Type="File" id="FileUp" runat="server" size="20"><br>
图片属性:<input type="radio" value="<%=request.cookies("dgxyl").values("dgxylbj")%>" name="R1" checked>本班<input type="radio" value="全校" name="R1">全校(本班则只在本班显示,全校则在全校显示)<P>
图片说明:<br>
<asp:TextBox id="TextBox1" runat="server" Width="233px" Height="141px">
</asp:TextBox>
<asp:RequiredFieldValidator id="RequiredFieldValidator1" runat="server" ControlToValidate="TextBox1" ErrorMessage="请输入图片说明">
</asp:RequiredFieldValidator><br>
<Asp:button id="Upload" OnClick="UploadFile" Text="上传图片" runat="server"/>
</form>
<Hr>
<p>注意:</p>
<ol>
<li><b>严禁上传污染环境的照片,否则账号将被删除!</b></li>
<li><font color="#808000"><b>请详细填写照片说明,图片说明不详细将会被视为乱传图片,将会被删除!</b></font></li>
</ol>
<p> </p></Body>
</Html>
客户端浏览器是不给你随便访问客户端文件权限的。
所以除非你用active或者.net组件,你没有别的办法。
不如做个Active X控件
抱歉,用户没有办法选中自己本地的一个目录,我是从程序的其他条件知道用户是传哪一个目录的,假设我已经知道用户要传本地的哪个目录。
---------------------------------
如何遍历用户本地目录的全部文件哪?
goody9807的方法好像只能传文件,不能传目录,不过还是谢谢goody9807。
当然以上基于不使用ActiveX和Winform控件,不降低浏览器安全权限的情况即使你知道了客户端目录,要想上传该目录下的文件,如果使用<input type=file>控件也不行,因为其value属性是只读的----------------------------------------------------------------------
欢迎试用ASP.NET大文件上传组件(AspnetUpload 1.1 Release & 无刷新进度条)
http://www.cnblogs.com/bestcomy/archive/2004/06/09/14267.aspx
http://bestcomy.europe.webmatrixhosting.net
----------------------------------------------------------------------
using System.IO
public ArrayList GetFile(string strPathName)
{
ArrayList newList=new ArrayList();
DirectoryInfo dir=new DirectoryInfo(strPathName);
foreach(FileSystemInfo sFsi in dir.GetFileSystemInfos())
{
if(sFsi is FileInfo)
{
FileInfo f=(FileInfo)sFsi;
newList.Add( f.FullName);//改为f.Name获得文件名和扩展名
}
else
{
DirectoryInfo dr=(DirectoryInfo)sFsi;
newList.AddRange(GetFile(strPathName+ "\\"+dr.Name));
}
}
return newList;
}