asp.net 图片上传服务器问题
下面代码在本地能成功,上传到服务器上就报错,服务器上的权限什么的都设置好了,还是不行,帮帮忙看看问题出在哪?if(Session["loginname"]!=null){...
下面代码在本地能成功,上传到服务器上就报错,服务器上的权限什么的都设置好了,还是不行,帮帮忙看看问题出在哪?
if (Session["loginname"] != null)
{
string loginname = Session["loginname"].ToString();
int allowlength = 1024 * 1024 * 10;//限制文件大小
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
if (name != "")
{
string size = FileUpload1.PostedFile.ContentLength.ToString(); //获取已上传文件夹的大小
string type = new FileInfo(FileUpload1.PostedFile.FileName).Extension; //得到文件的后缀
string fullpath = Server.MapPath("~/UserDocument/" + loginname + "/Picture/");//文件的保存路径
string vsnewname = System.DateTime.Now.ToString("yyyyMMddHHmm_");//声称文件名,防止重复
path = "UserDocument/" + loginname + "/Picture/" + vsnewname;
if (file.Length < allowlength)
{
if (type == ".bmp" || type == ".png" || type == ".jpg" || type == ".gif" || type == ".BMP" || type == ".PNG" || type == ".JPG" || type == ".GIF")
{
if (!Directory.Exists(fullpath))//判断上传文件夹是否存在,若不存在,则创建
{
//创建文件夹
Directory.CreateDirectory(fullpath);
FileUpload1.PostedFile.SaveAs(fullpath + vsnewname + file.Name);
}
else
{
FileUpload1.PostedFile.SaveAs(fullpath + vsnewname + file.Name);
}
}
else
{
Page.RegisterStartupScript("", "<script>alert('上传文件格式错误!');history.go(-1);</script>");
}
}
else
{
Page.RegisterStartupScript("", "<script>alert('上传文件太大!');history.go(-1);</script>");
}
}
else
{
Page.RegisterStartupScript("", "<script>alert('请上传文件!');history.go(-1);</script>");
} 展开
if (Session["loginname"] != null)
{
string loginname = Session["loginname"].ToString();
int allowlength = 1024 * 1024 * 10;//限制文件大小
string name = FileUpload1.PostedFile.FileName; // 客户端文件路径
FileInfo file = new FileInfo(name);
if (name != "")
{
string size = FileUpload1.PostedFile.ContentLength.ToString(); //获取已上传文件夹的大小
string type = new FileInfo(FileUpload1.PostedFile.FileName).Extension; //得到文件的后缀
string fullpath = Server.MapPath("~/UserDocument/" + loginname + "/Picture/");//文件的保存路径
string vsnewname = System.DateTime.Now.ToString("yyyyMMddHHmm_");//声称文件名,防止重复
path = "UserDocument/" + loginname + "/Picture/" + vsnewname;
if (file.Length < allowlength)
{
if (type == ".bmp" || type == ".png" || type == ".jpg" || type == ".gif" || type == ".BMP" || type == ".PNG" || type == ".JPG" || type == ".GIF")
{
if (!Directory.Exists(fullpath))//判断上传文件夹是否存在,若不存在,则创建
{
//创建文件夹
Directory.CreateDirectory(fullpath);
FileUpload1.PostedFile.SaveAs(fullpath + vsnewname + file.Name);
}
else
{
FileUpload1.PostedFile.SaveAs(fullpath + vsnewname + file.Name);
}
}
else
{
Page.RegisterStartupScript("", "<script>alert('上传文件格式错误!');history.go(-1);</script>");
}
}
else
{
Page.RegisterStartupScript("", "<script>alert('上传文件太大!');history.go(-1);</script>");
}
}
else
{
Page.RegisterStartupScript("", "<script>alert('请上传文件!');history.go(-1);</script>");
} 展开
2个回答
展开全部
你应该说明一下,发生了什么错误
FileInfo file = new FileInfo( name ); 这个错误是严重的,
这个服务器可没有这个file,
file.Length可以改成 FileUpload1.PostedFile.ContentLength
如果你要获取没有路径的文件名
你可以string filename = Path.GetFileName(sf.PostedFile.FileName);
如果你要获取文件的扩展名可以
string type = Path.GetExtension(sf.PostedFile.FileName);//带点的
你在本地可以是因为,
FileInfo file = new FileInfo( name ); 这里的name是一个有路径的名字,因此,file为本地上一个文件的句柄(这个name是你在上传框里填写的)
而到了服务器上是根本没有这个name所代表的文件,因此你所有的操作都会失败,因file代表的是一个根本不存在的文件,
因此你应该改成这样
if ( Session["loginname"] != null )
{
string loginname = Session["loginname"].ToString();
int allowlength = 1024 * 1024 * 10;//限制文件大小
string filename = Path.GetFileName( FileUpload1.PostedFile.FileName );
if ( FileUpload1.HasFile ) // 有上传文件
{
string size = FileUpload1.PostedFile.ContentLength.ToString(); //获取已上传文件夹的大小
string type = Path.GetExtension( FileUpload1.PostedFile.FileName ); //得到文件的后缀
string fullpath = Server.MapPath( "~/UserDocument/" + loginname + "/Picture/" );//文件的保存路径
string vsnewname = System.DateTime.Now.ToString( "yyyyMMddHHmm_" );//声称文件名,防止重复
path = "UserDocument/" + loginname + "/Picture/" + vsnewname;
if ( FileUpload1.PostedFile.ContentLength < allowlength )
{
if ( type == ".bmp" || type == ".png" || type == ".jpg" || type == ".gif" || type == ".BMP" || type == ".PNG" || type == ".JPG" || type == ".GIF" )
{
if ( !Directory.Exists( fullpath ) )//判断上传文件夹是否存在,若不存在,则创建
{
//创建文件夹
Directory.CreateDirectory( fullpath );
FileUpload1.PostedFile.SaveAs( fullpath + vsnewname + filename );
}
else
{
FileUpload1.PostedFile.SaveAs( fullpath + vsnewname + filename );
}
}
else
{
Page.RegisterStartupScript( "", "<script>alert('上传文件格式错误!');history.go(-1);</script>" );
}
}
else
{
Page.RegisterStartupScript( "", "<script>alert('上传文件太大!');history.go(-1);</script>" );
}
}
else
{
Page.RegisterStartupScript( "", "<script>alert('请上传文件!');history.go(-1);</script>" );
}
}
分多的话,我不介意你多加些给我
FileInfo file = new FileInfo( name ); 这个错误是严重的,
这个服务器可没有这个file,
file.Length可以改成 FileUpload1.PostedFile.ContentLength
如果你要获取没有路径的文件名
你可以string filename = Path.GetFileName(sf.PostedFile.FileName);
如果你要获取文件的扩展名可以
string type = Path.GetExtension(sf.PostedFile.FileName);//带点的
你在本地可以是因为,
FileInfo file = new FileInfo( name ); 这里的name是一个有路径的名字,因此,file为本地上一个文件的句柄(这个name是你在上传框里填写的)
而到了服务器上是根本没有这个name所代表的文件,因此你所有的操作都会失败,因file代表的是一个根本不存在的文件,
因此你应该改成这样
if ( Session["loginname"] != null )
{
string loginname = Session["loginname"].ToString();
int allowlength = 1024 * 1024 * 10;//限制文件大小
string filename = Path.GetFileName( FileUpload1.PostedFile.FileName );
if ( FileUpload1.HasFile ) // 有上传文件
{
string size = FileUpload1.PostedFile.ContentLength.ToString(); //获取已上传文件夹的大小
string type = Path.GetExtension( FileUpload1.PostedFile.FileName ); //得到文件的后缀
string fullpath = Server.MapPath( "~/UserDocument/" + loginname + "/Picture/" );//文件的保存路径
string vsnewname = System.DateTime.Now.ToString( "yyyyMMddHHmm_" );//声称文件名,防止重复
path = "UserDocument/" + loginname + "/Picture/" + vsnewname;
if ( FileUpload1.PostedFile.ContentLength < allowlength )
{
if ( type == ".bmp" || type == ".png" || type == ".jpg" || type == ".gif" || type == ".BMP" || type == ".PNG" || type == ".JPG" || type == ".GIF" )
{
if ( !Directory.Exists( fullpath ) )//判断上传文件夹是否存在,若不存在,则创建
{
//创建文件夹
Directory.CreateDirectory( fullpath );
FileUpload1.PostedFile.SaveAs( fullpath + vsnewname + filename );
}
else
{
FileUpload1.PostedFile.SaveAs( fullpath + vsnewname + filename );
}
}
else
{
Page.RegisterStartupScript( "", "<script>alert('上传文件格式错误!');history.go(-1);</script>" );
}
}
else
{
Page.RegisterStartupScript( "", "<script>alert('上传文件太大!');history.go(-1);</script>" );
}
}
else
{
Page.RegisterStartupScript( "", "<script>alert('请上传文件!');history.go(-1);</script>" );
}
}
分多的话,我不介意你多加些给我
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询