c# 本地图片 上传到另一个服务器

c# 本地图片 上传到另一个服务器,第1张

在网上查查上传的代码。介绍jmail的上传附件的就有 下面的是按钮点击方法

html:

<asp:FileUpload ID="fufujian" runat="server" style ="border-left-style:none;border-right-style:none;border-top-style:none; " />

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button" />

cs文件

按钮点击

if (fufujianHasFile)

{

//指定上传文件在服务器上的保存路径

string savePath = ServerMapPath("~/upload/");

//检查服务器上是否存在这个物理路径,如果不存在则创建

if (!SystemIODirectoryExists(savePath))

{

//需要注意的是,需要对这个物理路径有足够的权限,否则会报错

//另外,这个路径应该是在网站之下,而将网站部署在C盘却把上传文件保存在D盘

SystemIODirectoryCreateDirectory(savePath);

}

savePath = savePath + "\\" + fufujianFileName;

fufujianSaveAs(savePath);//保存文件

//不过需要注意的是,在客户端访问却需要指定的是URL地址,而不是在服务器上的物理地址

// ResponseWrite(savePath);

// ResponseEnd();

//ResponseWrite(stringFormat("<a href='upload/{0}'>upload/{0}</a>", fufujianFileName));

//ResponseEnd();

using System;

using SystemIO;

using SystemWebUIHtmlControls;

namespace JH_ProfessionCMSCommon

{

/// <summary>

/// 功能 : 上传文件操作类

/// 作者 : xtx

/// </summary>

public class UpFile

{

public UpFile()

{

}

#region 是否允许该扩展名上传 IsAllowedExtension

/// <summary>

/// 是否允许该扩展名上传

/// </summary>

/// <paramname = "hifile">HtmlInputFile 控件 </param>

/// <returns> 允许则返回 true, 否则返回 false </returns>

public bool IsAllowedExtension(HtmlInputFile hifile)

{

string strOldFilePath = "";

string strExtension = "";

// 允许上传的扩展名,可以改成从配置文件中读出

string[]arrExtension = {"gif","jpg","jpeg","bmp","png"};

if(hifilePostedFileFileName != stringEmpty)

{

strOldFilePath = hifilePostedFileFileName;

// 取得上传文件的扩展名

strExtension = strOldFilePathSubstring(strOldFilePathLastIndexOf(""));

// 判断该扩展名是否合法

for(int i = 0;i <arrExtensionLength;i++)

{

if(strExtensionEquals(arrExtension[i]))

{

return true;

}

}

}

return false;

}

#endregion

#region 判断上传文件大小是否超过最大值 IsAllowedLength

/// <summary>

/// 判断上传文件大小是否超过最大值

/// </summary>

/// <param name="hifile">HtmlInputFile 控件 </param>

/// <returns> 超过最大值返回 false, 否则返回 true </returns>

public bool IsAllowedLength(HtmlInputFile hifile)

{

// 允许上传文件大小的最大值 , 可以保存在 xml 文件中 , 单位为 KB

int i = 20;

// 如果上传文件的大小超过最大值 , 返回 flase, 否则返回 true

if(hifilePostedFileContentLength > i 1024)

{

return false;

}

return true;

}

#endregion

#region 获取一个不重复的文件名 GetUniqueString

/// <summary>

/// 获取一个不重复的文件名

/// </summary>

/// <returns> </returns>

public string GetUniqueString()

{

// 得到的文件名形如 :20050922101010

return DateTimeNowToString("yyyyMMddhhmmss");

}

#endregion

#region 删除指定文件 DeleteFile

/// <summary>

/// 删除指定文件

/// </summary>

/// <param name="strAbsolutePath"> 文件绝对路径 </param>

/// <param name="strFileName"> 文件名 </param>

public void DeleteFile(string strAbsolutePath, string strFileName)

{

// 判断路径最后有没有 \ 符号,没有则自动加上

if(strAbsolutePathLastIndexOf("\\") == strAbsolutePathLength)

{

// 判断要删除的文件是否存在

if(FileExists(strAbsolutePath + strFileName))

{

// 删除文件

FileDelete(strAbsolutePath + strFileName);

}

}

else

{

if(FileExists(strAbsolutePath + "\\" + strFileName))

{

FileDelete(strAbsolutePath + "\\" + strFileName);

}

}

}

#endregion

#region 上传文件并返回文件名 SaveFile

/// <summary>

/// 上传文件并返回文件名

/// </summary>

/// <param name="hifile">HtmlInputFile 控件 </param>

/// <param name="strAbsolutePath"> 绝对路径 如 :ServerMapPath(@"Image/upload") 与 ServerMapPath(@"Image/upload/") 均可 , 用 \ 符号亦可 </param>

/// <returns> 返回的文件名即上传后的文件名 </returns>

public string SaveFile(HtmlInputFile hifile,string strAbsolutePath)

{

string strOldFilePath = "",strExtension = "",strNewFileName = "";

// 如果上传文件的文件名不为空

if(hifilePostedFileFileName != stringEmpty)

{

strOldFilePath = hifilePostedFileFileName;

// 取得上传文件的扩展名

strExtension = strOldFilePathSubstring(strOldFilePathLastIndexOf(""));

// 文件上传后的命名

strNewFileName = GetUniqueString() + strExtension;

// 如果路径末尾为 \ 符号,则直接上传文件

if(strAbsolutePathLastIndexOf("\\") == strAbsolutePathLength)

{

hifilePostedFileSaveAs(strAbsolutePath + strNewFileName);

}

else

{

hifilePostedFileSaveAs(strAbsolutePath + "\\" + strNewFileName);

}

}

return strNewFileName;

}

#endregion

#region 重新上传文件,删除原有文件 CoverFile

/// <summary>

/// 重新上传文件,删除原有文件

/// </summary>

/// <param name="ffFile">HtmlInputFile 控件 </param>

/// <param name="strAbsolutePath"> 绝对路径 如 :ServerMapPath(@"Image/upload") 与 ServerMapPath(@"Image/upload/") 均可 , 用 \ 符号亦可 </param>

/// <param name="strOldFileName"> 旧文件名 </param>

public string CoverFile(HtmlInputFile ffFile,string strAbsolutePath,string strOldFileName)

{

// 获得新文件名

string strNewFileName = GetUniqueString();

if(ffFilePostedFileFileName != stringEmpty)

{

// 旧不为空时先删除旧

if(strOldFileName != stringEmpty)

{

DeleteFile(strAbsolutePath,strOldFileName);

}

return SaveFile(ffFile,strAbsolutePath);

}

return "";

}

#endregion

}

}

至于保存嘛,简单了,上面已经有取得路径的代码。你把数据库操作加进去就行了。

用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);

}

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

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;

}

DABAN RP主题是一个优秀的主题,极致后台体验,无插件,集成会员系统
网站模板库 » c# 本地图片 上传到另一个服务器

0条评论

发表评论

提供最优质的资源集合

立即查看 了解详情