6、js中的中文显示到页面上时,一般都会乱码,解决办法:
<script type="text/javascript" src="myjs.js" charset="gb2312"></script>
就是在引用 的时候加上charset。gb2312如果不行,可以换用其它的试试,如:utf-8等
7、储存上传的文件时,为了减少各种可能的冲突,最好是用当前时间(精确到分或秒)加上用户的id生成一个新的文件名,再在数据库中存储原文件名和新文件名。
8、图片上传。
有时候用户上传的图片会很大,假设我们已经设了能上传的图片最大是2M,那么用户可能大部分都传1M多的图片,这样的话,如果加载的图片多了,页面打开就会很慢。一个解决办法是把上传的图片压缩成位图。我自己封装了一个函数,以后做项目可以用得上:
?
/// <summary>
/// 压缩保存文件
/// </summary>
/// <param name="fileUpload">System.Web.UI.WebControls.FileUpload组件</param>
/// <param name="filter">用于过滤字符串,如string[] allowExtensions = { "bmp", "jpg", "jpeg", "png", "gif", "tiff" };</param>
/// <param name="fileSize">文件不能超过这个大小,单位byte</param>
/// <param name="webpath">图片储存的文件夹路径!别以'/'结尾!</param>
/// <param name="userId">用户名,用于重命文件名</param>
/// <returns>新的文件名</returns>
public string SaveSmallUploadFile(System.Web.UI.WebControls.FileUpload fileUpload, string[] filter,int fileSize, string webpath, int userId,int width,int height)
{
string filename = fileUpload.FileName;
string newext;
//文件大小
int length = fileUpload.PostedFile.ContentLength;
if (CheckFileFilter(filename, filter, out newext))
throw new Exception("上传的文件格式不正确!");
else if(length >= fileSize)
{
throw new Exception("上传的文件太大,文件大小必须小于"+fileSize/1000);
}
string path = System.Web.HttpContext.Current.Server.MapPath(webpath);
if (!System.IO.Directory.Exists(path))
{
System.IO.Directory.CreateDirectory(path);
}
filename = GetNameWithDate() + "_" + userId + "." + newext;
string str = System.Web.HttpContext.Current.Server.MapPath(webpath +"\\"+ filename + "_bak." + newext);
fileUpload.SaveAs(str);
//创建一个bitmap类型的bmp变量来读取文件。
System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(str);
//新建第二个bitmap类型的bmp2变量,我这里是根据我的程序需要设置的。
System.Drawing.Bitmap bmpNew = new System.Drawing.Bitmap(width, height, System.Drawing.Imaging.PixelFormat.Format16bppRgb555);
//将第一个bmp拷贝到bmp2中
System.Drawing.Graphics draw = System.Drawing.Graphics.FromImage(bmpNew);
//设置背景透明,当然也可以设成其它颜色
draw.Clear(System.Drawing.Color.Transparent);
draw.DrawImage(bmp, 0, 0, width, height);
filename = filename.Substring(0,filename.LastIndexOf(".")) + ".jpg";//可以在这里改新文件的格式,这里改了,下面的下面这句也要改
string filePath = webpath + "/" + filename;
bmpNew.Save(System.Web.HttpContext.Current.Server.MapPath(filePath), System.Drawing.Imaging.ImageFormat.Jpeg);
draw.Dispose();
bmp.Dispose();//释放bmp文件资源
FileInfo file = new FileInfo(str);
if (file.Exists) file.Delete();
return filename;
}
/// <summary> /// 将当前时间形成字符串以用作文件名 /// </summary> /// <returns></returns> public static string GetNameWithDate() { return DateTime.Now.ToString("yyMMddhhmmssfff"); }
/// <summary> ??? /// 检查文件后缀是否与filter中匹配 ??? /// </summary> ??? /// <param name="filename">文件名称</param> ??? /// <param name="filter">匹配类型</param> ??? /// <returns></returns> ??? private static bool CheckFileFilter(string filename, string[] filter, out string ext) ??? { ??????? bool isFilter = true; ??????? int i = filename.LastIndexOf("."); ??????? ext = filename.Substring(i + 1).ToLower(); ??????? if (filter != null) ??????? { ??????????? for (i = 0; i < filter.Length; i++) ??????????? { ??????????????? if (ext == filter[i].ToLower()) ??????????????? { ??????????????????? isFilter = false; ??????????????????? break; ??????????????? } ??????????? } ??????? } ??????? return isFilter; ??? }