如何更改已上传的图片!!

baiyashan 2006-04-17 12:02:22
我用File Field控件上传了图片,现在我想修改我的上传图片,可是我每次一修改就又上传了一个图片.
思想就是把旧图片先删除,然后在上传,这样就更改了.

可是俺不会写代码!!俺不是怎么奖取旧图片的路径!!!

各位帮忙啊!!
...全文
408 17 打赏 收藏 转发到动态 举报
写回复
用AI写文章
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
chenfeile 2006-04-17
  • 打赏
  • 举报
回复
你那个表中会有一个id
和一个picURL
要编辑的时候.你把。对应的id传过来。..再更新图片的地址.也就可以啦。
zhaoliang_chen 2006-04-17
  • 打赏
  • 举报
回复
html有这个控件 filefield
nimeide1234567890 2006-04-17
  • 打赏
  • 举报
回复
ding
rooney321 2006-04-17
  • 打赏
  • 举报
回复
读取数据库的旧图片路径:
数据库连接信息省略
string a="SELECT语句"
SqlCommand cmd=new SqlCommand(a,sconn);//a和sconn都是我自己定义的数据库连接信息
string Url=cmd.ExecuteScalar().ToString();//获取数据库单个信息
File.Delete(Url);//删除数据库里记录的URL地址文件

别忘了using System.IO;

baiyashan 2006-04-17
  • 打赏
  • 举报
回复
我的路径在我的数据库里呢.可是我奖不到.这样写是奖取到上传后的咱径.在这之前要把以前的旧图片的咱径得到.



if(Path.Trim()!="")
imgeup.ImageUrl=Path+"\\"+FileName;
cmd.Parameters.Add(new SqlParameter("@imgurl",SqlDbType.VarChar,50));
cmd.Parameters["@imgurl"].Value=imgeup.ImageUrl.ToString();
rooney321 2006-04-17
  • 打赏
  • 举报
回复
问一句。。数据库里有没表记录上传过的地址? 图片或者是附件在数据库里有2种保存方法:一种是保存的是URL地址,一种是转换成2进制数据流,通常是第一种方法

你没保存过上传过的记录那就不行了。。
rooney321 2006-04-17
  • 打赏
  • 举报
回复
没法给你完整的啊
每个人程序都不一样 命名方法都不一样,只能告诉你方法
string filePath=File1.PostedFile.FileName;
这就是获取上传的文件路径 File1是上传控件名
把路径保存在ViewState["path"]中:ViewState["path"]=filePath;
然后用File.Delete(ViewState["path"]);来删除你刚才上传的文件
baiyashan 2006-04-17
  • 打赏
  • 举报
回复
看看我是怎么写的吧.能帮我改改吗? 这个是update_onclick()事件里的.


SqlConnection conn=new SqlConnection(ConfigurationSettings.AppSettings["conn"]);
conn.Open();
String sql1="select name from chanpin where name='"+Cname.Text+"'";
SqlDataAdapter da=new SqlDataAdapter(sql1,conn);
DataSet ds=new DataSet();
da.Fill(ds,"chanpin");
string Path="";
string FileName="";
int Po;
long FileSize;
string fType;
if(File1.PostedFile.FileName.Trim()!="") //PostFile's Filename is not empty
{

try
{
Path=Server.MapPath("..\\bimgs").ToString();
FileName=File1.PostedFile.FileName.ToString();//客户端的路径
fType=File1.PostedFile.ContentType; //类型
FileSize=File1.PostedFile.ContentLength; //上传大小
if(fType.Substring(0,5)!="image")
{
///ShowErrMsg("PostFile is not Image!");
return;
}
String fileTailName = "";
bool isBelong = false;

fileTailName = File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("."));
for(int i = 0; i < FILETAILNAME.Length; i++)
{
if(fileTailName == FILETAILNAME[i])
{
isBelong = true;
break;
}
if(fileTailName=="")
{
isBelong=true;
break;
}
}
if(isBelong == false)
{
Response.Write("<script>alert(\"文件格式不正确!!!\")</script>");
return;
}

Po=FileName.LastIndexOf((char)92);
FileName=FileName.Substring(Po+1,FileName.Length -Po-1);
ViewState["PostFileName"]=FileName;
//Remember PostFile's name

FileName = File1.PostedFile.FileName.Substring(File1.PostedFile.FileName.LastIndexOf("\\"),
File1.PostedFile.FileName.Length - File1.PostedFile.FileName.LastIndexOf("\\"));

String fileTime = DateTime.Now.Year.ToString() + DateTime.Now.Month.ToString()
+ DateTime.Now.Day.ToString() + DateTime.Now.Hour.ToString()
+ DateTime.Now.Second.ToString() + DateTime.Now.Minute.ToString()
+ DateTime.Now.Millisecond.ToString();
FileName="\\"+fileTime+GetRandomint()+PhotoTitle.Text.Trim()+FileName.Substring(FileName.IndexOf("."),FileName.Length-FileName.IndexOf("."));

File1.PostedFile.SaveAs(Path+"\\"+FileName);

//imgeup.ImageUrl="UpLoads\\"+FileName;
}
catch(Exception er)
{
er.ToString();
}
}



string sql="update chanpin set name=@name,zhiNo=@zhiNo,jieshao=@jieshao,imgurl=@imgurl,pric=@pric,youxiao=@youxiao,chNo=@chNo,lianren=@lianren,leiid=@leiid,imgbiao=@imgbiao,xinxi=@xinxi,comname=@comname,sheng=@sheng,shi=@shi,adrees=@adrees,lianphone=@lianphone,lianshou=@lianshou,liandian=@liandian,wang=@wang where chanid='"+Request.QueryString["chanid"]+"'";


SqlCommand cmd=new SqlCommand(sql,conn);
cmd.Parameters.Add(new SqlParameter("@name",SqlDbType.VarChar,50));
cmd.Parameters["@name"].Value=Cname.Text.Trim().ToString();



cmd.Parameters.Add(new SqlParameter("@zhiNo",SqlDbType.Int,4));
cmd.Parameters["@zhiNo"].Value=Czhi.SelectedValue.ToString();

cmd.Parameters.Add(new SqlParameter("@jieshao",SqlDbType.VarChar,500));
cmd.Parameters["@jieshao"].Value=Cjie.Text.Trim().ToString();

// string delpath=ViewState["imgurl"].ToString();
// File.Delete(delpath);//删除已经上传文档
// //ViewState["imgurl"]="";

if(Path.Trim()!="")
imgeup.ImageUrl=Path+"\\"+FileName;
cmd.Parameters.Add(new SqlParameter("@imgurl",SqlDbType.VarChar,50));
cmd.Parameters["@imgurl"].Value=imgeup.ImageUrl.ToString();

if(Path.Trim()!="")
imgeup.ImageUrl=Path+"\\"+FileName;
cmd.Parameters.Add(new SqlParameter("@imgurl",SqlDbType.VarChar,50));
cmd.Parameters["@imgurl"].Value=imgeup.ImageUrl.ToString();

cmd.Parameters.Add(new SqlParameter("@pric",SqlDbType.VarChar,50));
cmd.Parameters["@pric"].Value=Cpric.Text.ToString();

cmd.Parameters.Add(new SqlParameter("@youxiao",SqlDbType.VarChar,50));
cmd.Parameters["@youxiao"].Value=cyou.Text.ToString();

cmd.Parameters.Add(new SqlParameter("@chNo",SqlDbType.Int,4));
cmd.Parameters["@chNo"].Value=Cshu.Text.Trim().ToString();

cmd.Parameters.Add(new SqlParameter("@lianren",SqlDbType.VarChar,20));
cmd.Parameters["@lianren"].Value=Cren.Text.Trim().ToString();

cmd.Parameters.Add(new SqlParameter("@leiid",SqlDbType.VarChar,20));
cmd.Parameters["@leiid"].Value=Clei.SelectedValue.ToString();

cmd.Parameters.Add(new SqlParameter("@imgbiao",SqlDbType.VarChar,50));
cmd.Parameters["@imgbiao"].Value=PhotoTitle.Text.Trim().ToString();

cmd.Parameters.Add(new SqlParameter("@comname",SqlDbType.VarChar,20));
cmd.Parameters["@comname"].Value=cgname.Text.Trim().ToString();


cmd.Parameters.Add(new SqlParameter("@sheng",SqlDbType.VarChar,20));
cmd.Parameters["@sheng"].Value=Csheng.SelectedValue.ToString();

cmd.Parameters.Add(new SqlParameter("@shi",SqlDbType.VarChar,20));
cmd.Parameters["@shi"].Value=Cshi.SelectedValue.ToString();


cmd.Parameters.Add(new SqlParameter("@adrees",SqlDbType.VarChar,20));
cmd.Parameters["@adrees"].Value=Cdi.Text.Trim().ToString();

cmd.Parameters.Add(new SqlParameter("@wang",SqlDbType.VarChar,20));
cmd.Parameters["@wang"].Value=twang.Text.Trim().ToString();

cmd.Parameters.Add(new SqlParameter("@lianphone",SqlDbType.VarChar,30));
cmd.Parameters["@lianphone"].Value=Txtphone1.Text.Trim().ToString();

cmd.Parameters.Add(new SqlParameter("@lianshou",SqlDbType.VarChar,30));
cmd.Parameters["@lianshou"].Value=mobile.Text.Trim().ToString();

cmd.Parameters.Add(new SqlParameter("@liandian",SqlDbType.VarChar,30));
cmd.Parameters["@liandian"].Value=mail.Text.Trim().ToString();

if(dr1.Visible==true)
{
cmd.Parameters.Add(new SqlParameter("@xinxi",SqlDbType.VarChar,30));
cmd.Parameters["@xinxi"].Value=dr1.SelectedValue.ToString();
}
else
{
cmd.Parameters.Add(new SqlParameter("@xinxi",SqlDbType.VarChar,20));
cmd.Parameters["@xinxi"].Value=Cxi.SelectedValue.ToString();
}



try
{


cmd.ExecuteNonQuery();
Response.Write("<script>alert(\"<b>恭喜您!!!产品资料更新成功!!!</b>\")</script>");
Server.Transfer("gqguan.aspx");



}
catch (SqlException Exp)
{
if (Exp.Number == 2627)

Response.Write("<script>alert(\"<b>错误: 具有相同主索引键的资料纪录已经存在</b>\")</script>");

else

Response.Write("<script>alert(\"<b>错误: 无法更新资料纪录,请确定各栏位是否都已正确输入。</b>\")</script>");

}
}
}
baiyashan 2006-04-17
  • 打赏
  • 举报
回复
有完整点的吗??
rooney321 2006-04-17
  • 打赏
  • 举报
回复
string filePath=File1.PostedFile.FileName;//获取文件路径
string fileExtName=filePath.Substring(filePath.LastIndexOf(".")+1);//获取文件扩展名
rooney321 2006-04-17
  • 打赏
  • 举报
回复
给楼主我以前的代码吧
在第一次上传后,记录下上传的URL,ViewState["path"]=你上传的路径
新建立一个BUTTON,修改用,点击触发事件:
string delpath=ViewState["path"].ToString();
File.Delete(delpath);//删除已经上传文档
ViewState["path"]="";
baiyashan 2006-04-17
  • 打赏
  • 举报
回复
我哪个图片不是相同的.就是怎么奖取旧图片路径.删除旧图片,然后修成我的新图片路径.
hchxxzx 2006-04-17
  • 打赏
  • 举报
回复
可是俺不会写代码!!俺不是怎么奖取旧图片的路径!!!
----------------------------------
你想获取旧图片的路径,就需要你在上传的时候,把此图片的路径记录在某个地方,需要的时候再取出来使用.
baiyashan 2006-04-17
  • 打赏
  • 举报
回复
up
yecong 2006-04-17
  • 打赏
  • 举报
回复
用 PostedFile.SaveAs,不用删除原来的,如果已存在同名的文件,会直接覆盖
bingbingcha 2006-04-17
  • 打赏
  • 举报
回复
你获取上传后的文件名字..然后用File.Delete( "aa.gif" );
然后再上传新的..

或者

你获取上传后的文件名字后,在保存为同名的文件就好了..不过这个办法要注意文件的格式问题.比如gif和jpeg文件类型,要先判断一下的
sunchaohuang 2006-04-17
  • 打赏
  • 举报
回复
直接打开文档修改不就可以了

62,041

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧