关于FileUpload上传张片、相对路径问题。
Default.aspx:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
<script language="javascript">
function Check_FileType()
{
var str=document.getElementById("FileUpload1").value;
var pos = str.lastIndexOf(".");
var lastname = str.substring(pos,str.length)
if (lastname.toLowerCase()!=".jpg" && lastname.toLowerCase()!=".gif")
{
alert("您上传的文件类型为"+lastname+",图片必须为.jpg,.gif类型");
return false;
}
else
{
return true;
}
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:FileUpload ID="FileUpload1" runat="server" />
<asp:Button ID="Button1" runat="server" OnClick="Button1_Click" Text="上传" OnClientClick="return Check_FileType()"/>
<asp:RequiredFieldValidator ID="RequiredFieldValidator1" runat="server" ControlToValidate="FileUpload1"
ErrorMessage="必须是 jpg或者gif文件"></asp:RequiredFieldValidator>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="FileUpload1"
ErrorMessage="必须是 jpg或者gif文件" ValidationExpression=".*([\.jpg]|[\.jpeg]|[\.jpe]|[\.gif]|[\.png]|[\.JPEG]|[\.JPG]|[\.GIF]|[\.bmp]|[\.BMP])$"></asp:RegularExpressionValidator>
<asp:Image ID="Image1" runat="server" />
<br />
<asp:Label ID="Label1" runat="server" Text="Label"></asp:Label></div>
</form>
</body>
</html>
CS文件:
using System;
using System.Data;
using System.Data.Sql;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
Image1.Visible = false;
}
protected void Button1_Click(object sender, EventArgs e)
{
string constr = "persist security info=false;uid=sa1;pwd=sa1;database=image";
SqlConnection con = new SqlConnection(constr);
string spath = @"\新建文件夹\image\";
if (FileUpload1.HasFile)
{
string fname = FileUpload1.FileName;
string tt = fname.Substring(fname.LastIndexOf(".") + 1);
spath += fname;
FileUpload1.SaveAs(spath);
Label1.Text = spath;
if (tt == "jpg" || tt == "gif")
{
Image1.ImageUrl = @"\新建文件夹\image\" + fname;
Image1.Visible = true;
}
}
else
{
Label1.Text = "你还没有上传文件!";
}
string strcmd = "insert into tupian(t)values('" + Label1.Text + "')";
SqlCommand cmd = new SqlCommand(strcmd, con);
con.Open();
cmd.ExecuteNonQuery();
con.Close();
Label1.Text = "添加成功!";
}
}
关于spath的那个相对路径要怎么设置。我现在怎么搞图片都在F:盘。
--------------------编程问答-------------------- Image1.ImageUrl = "~\新建文件夹\image\" + fname; --------------------编程问答-------------------- protected void btnUpload_Click(object sender, EventArgs e)
{
if (fileUpload.HasFile)
{
string savePath = Server.MapPath("~/upload/");
if (!System.IO.Directory.Exists(savePath))
{
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\\" + fileUpload.FileName;
fileUpload.SaveAs(savePath);
}
}
显示page.resolveurl
--------------------编程问答-------------------- string spath = @"\新建文件夹\image\";变为:
string spath = Server.MapPath("~/新建文件夹/image" ); --------------------编程问答-------------------- 学习,帮顶 --------------------编程问答-------------------- 可以直接存储图片名(包含扩展名),到时显示的时候就构造下嘛,前提是你要把图片放到同个目录下 --------------------编程问答-------------------- 2楼,请楼主平时注意一下C#语言的一些关键字和字符 --------------------编程问答-------------------- 用MapPath把相对位置转化为绝对位置 --------------------编程问答-------------------- 大哥些。你告诉我只前,。先试下嘛,。都不对。- -!
郁闷死了、 --------------------编程问答--------------------
this.Image1.ImageUrl = "Images/NewsPic/img1.jpg";
这个是可以的 --------------------编程问答-------------------- 又沉了。我晕。 --------------------编程问答-------------------- string spath = Server.MapPath("~/新建文件夹/image" );
完毕。 --------------------编程问答-------------------- 别管什么路径,全部相对跟路径就行了,用“/”就行了。。
真怀疑了,是不是做开发的 --------------------编程问答--------------------
--------------------编程问答--------------------
protected void btnUpLoad_Click(object sender, EventArgs e)
{
//获取准备上传的文件的名称
string fileName = fuConver.FileName;
//获取准备上传文件的物理路径
string filePath = fuConver.PostedFile.FileName;
//获取准备上传的文件的大小
int length = fuConver.PostedFile.ContentLength;
//当文件小于2000000字节,即2M时:
if (length < 2000000)
{
//获取文件的后缀名
string exec = Path.GetExtension(fileName);
if (exec.ToUpper() == ".GIF" || exec.ToUpper() == ".JPG")
{
string newName = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond.ToString() + exec;
//在指定的目录上保存上传的文件
fuConver.SaveAs(Server.MapPath("images/BKConver/" + newName));
ViewState["Conver"] = newName;
}
else
{
Response.Write("<script>alert('文件格式不正确!请重新上传!');</script>");
}
}
else
{
Response.Write("<script>alert('文件太大!上传失败!');</script>");
}
}
fuConver 这个是什么。= = --------------------编程问答--------------------
sender, EventArgs e)
{
if (fileUpload.HasFile)
{
string savePath = Server.MapPath("~/upload/");
if (!System.IO.Directory.Exists(savePath))
{
System.IO.Directory.CreateDirectory(savePath);
}
savePath = savePath + "\" + fileUpload.FileName;
fileUpload.SaveAs(savePath);
}
}
--------------------编程问答-------------------- string spath = @"\新建文件夹\image\";
不要再这样了
我刚遇到这个问题
必须要获得当前网站的目录 有个方法来着 你这样写死 万一用户发布网站修改了文件夹的名字岂不是就找不到了 --------------------编程问答-------------------- 发布的时候难道你没有什么错误吗 --------------------编程问答-------------------- 我就是发现这个问题,才请教大家,如何可以把图片就放在和网页同一个目录下的image文件夹中,- -
还是没有解决呐、 --------------------编程问答--------------------
--------------------编程问答--------------------
FileUpload fulBook = dvBook.FindControl("fulBook") as FileUpload;
string fileName = fulBook.FileName;
if (fileName.Trim().Length != 0)
{
string strPath = Server.MapPath("~/images/BookCovers");
fulBook.PostedFile.SaveAs(strPath);
}
FileUpload fulBook = dvBook.FindControl("fulBook") as FileUpload;
string fileName = fulBook.FileName;
if (fileName.Trim().Length != 0)
{
string strPath = Server.MapPath("~/images/BookCovers");
fulBook.PostedFile.SaveAs(strPath);
}
--------------------编程问答--------------------
dvBook是什么? --------------------编程问答-------------------- 这样判断上传文件类型好像不安全吧,据说很多木马能绕过。 --------------------编程问答-------------------- Server.MapPath("images/") --------------------编程问答-------------------- 实在不行了取相对跟的路径.
补充:.NET技术 , ASP.NET