c#客户端图片上传到服务器端文件并且把路径保存到SQL数据库

c#客户端图片上传到服务器端文件并且把路径保存到SQL数据库,第1张

//这是一个上传的例子,上传其他文件都一样

string strFileFullName = SystemIOPathGetFileName(thisFileUpload1PostedFileFileName);

if (strFileFullNameLength > 0)

{

if (FileUpload1HasFile)

{

string newFileName = GetNewFileName(strFileFullName);

string path = ServerMapPath("[服务器端存储的路径]" + newFileName);

string pathSaveImg = ServerMapPath("[服务器端存储的路径]" + newFileName);

thisFileUpload1SaveAs(path);

[数据库字段]= "[服务器端存储的路径]" + newFileName;

}

else

{

MessageBoxShow(this, "找不到此"); return;

}

}

//跟据文件名产生一个由时间+随机数组成的一个新的文件名

//因为客户端上传的文件很可能会重名,所以要对文件名进行重命名

public static string GetNewFileName(string FileName)

{

Random rand = new Random();

string newfilename = DateTimeNowYearToString() + DateTimeNowMonthToString() + "m" +

DateTimeNowDayToString() + "d"

+ DateTimeNowSecondToString() + DateTimeNowMinuteToString()

+ DateTimeNowMillisecondToString()

+ "a" + randNext(1000)ToString()

+ FileNameSubstring(FileNameLastIndexOf(""), FileNameLength - FileNameLastIndexOf(""));

return newfilename;

}

上传到服务器上会比较好,数据库可以记录一些必要的信息,比如文件的名称,类型(扩展名),大小,创建时间及谁的文件等等;如果把文件放入数据库,读写性能不如文件系统,还会加大数据库的压力。放到服务器上注意要设计好一个文件结构,不然以后一个文件夹里有成千上万个文件,打开那个文件夹就要好久,更不用说查找和下载了。

出现该问题,主要是因为tomcat版本高的原因。我使用tomcat 8024,便没有此问题,当我使用tomcat 85+ 时,就会出现该问题,需要修改我下面书写的配置,才能生效!

一、检查linux

linux文件访问默认权限与umask有关,查看系统默认配置(/etc/profile)是否正常,如果是002或022就正常没有问题。

[umask 002 对应文件权限664,文件夹权限775;

umask 022对应文件权限644,文件夹权限755]

二、检查tomcat

打开bin/catalinash文件,检查大概在263行左右。

将0027改改为0022,重启tomcat,上传访问的问题解决。

原代码

# Set UMASK unless it has been overriddenif [ -z "$UMASK" ]; then

UMASK="0027"fi

改为

# Set UMASK unless it has been overriddenif [ -z "$UMASK" ]; then

UMASK="0022"fi

三、重启tomcat

sh shutdownsh(关闭)

sh startupsh 或者 /startupsh(启动)

我做了个例子给你\x0d\前台:\x0d\\x0d\ \x0d\ \x0d\ \x0d\ \x0d\后台:\x0d\ protected void Button1_Click(object sender, EventArgs e)\x0d\ {\x0d\ FileUpload1SaveAs(ServerMapPath("img/"+FileUpload1FileName));//上传\x0d\ Image1ImageUrl = "~/img/" + FileUpload1FileName;//路径(将这个数据保存到数据库就可以了。img为项目里一个文件夹的名称)\x0d\ }

用FileUpload控件 做个死循环一直赋值上传,这样行么?

下面是fileupload上传代码

if (UploadImgPostedFileFileName != "")

{

string ImgPath = UploadImgPostedFileFileName;

ImgName = ImgPathSubstring(ImgPathLastIndexOf("\\") + 1);

string ImgExtend = ImgPathSubstring(ImgPathLastIndexOf("") + 1);

if (!(ImgExtend == "bmp" || ImgExtend == "jpg" || ImgExtend == "gif"))

{

Label1Visible = true;

ImgName = "noImagegif";

return;

}

Photo = ServerMapPath("~/Images/") + ImgName;

UploadImgPostedFileSaveAs(Photo);

}

用smartupload 控件来完成 你百度下一大堆的例子,算了我帮你百度,不然你分不给我,要记的给我呀,至于保存在数据库中,你可以用年月日时分秒这样的格式生成一个文件存放目录,将的路径保存到数据库中

<%@ page language="java" contentType="text/html; charset=GB2312" pageEncoding="GB2312"%>

<%@ page language="java" import="javaio"%>

<%@ page language="java" import="comjspsmartupload"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 401 Transitional//EN">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=GB2312">

<title>文件上传Bean</title>

</head>

<body>

<jsp:useBean id="mySmartUpload" scope="page" class="comjspsmartuploadSmartUpload" />

<FORM METHOD="POST" ACTION="Ex7_7jsp" ENCTYPE="multipart/form-data">

<INPUT TYPE="FILE" NAME="FILE1" SIZE="50"><BR>

<INPUT TYPE="FILE" NAME="FILE2" SIZE="50"><BR>

<INPUT TYPE="FILE" NAME="FILE3" SIZE="50"><BR>

<INPUT TYPE="FILE" NAME="FILE4" SIZE="50"><BR>

<INPUT TYPE="SUBMIT" VALUE="Upload">

</FORM>

<%

//上传文件计数

int count=0;

//初始化,传入pageContext内置变量

mySmartUploadinitialize(pageContext);

//允许上传的文件类型

mySmartUploadsetAllowedFilesList("htm,html,txt,jar,");

//或者设定拒绝上传的文件类型

// mySmartUploadsetDeniedFilesList("exe,bat,jsp");

// 拒绝的物理路径

// mySmartUploadsetDenyPhysicalPath(true);

// 设置文件最大为 50000 bytes

mySmartUploadsetMaxFileSize(50000);

// 允许一次最多上载文件大小不超过 200000 bytes

// mySmartUploadsetTotalMaxFileSize(200000);

try {

// 上传操作

mySmartUploadupload();

//以原文件名存储在web服务器虚拟路径下

//返回上传的文件数

count = mySmartUploadsave("/Upload", mySmartUploadSAVE_VIRTUAL);

} catch (Exception e){

//输出意外信息

outprintln("<b>Wrong selection : </b>" + etoString());

}

// 显示文件上载数

outprintln(count + " file(s) uploaded");

%>

</body>

</html>

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » c#客户端图片上传到服务器端文件并且把路径保存到SQL数据库

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情