用法
/// <summary>
/// NewsClass.aspx图片上传
/// </summary>
/// <param name="context"></param>
private void NewsClassMFile(HttpContext context)
{
string xten = domain.domainname.GetIndexConfigValue("NewsClassFile");
string FileLength = domain.domainname.GetIndexConfigValue("NewsClassFileLength");
string _upfilepath = HttpContext.Current.Request["UpFilePath"]; //取得上传的对象名称
Boolean fileok = false;
HttpPostedFile fileup = context.Request.Files[_upfilepath];
if (fileup.ContentLength != 0)
{
if (fileup.ContentLength <= Double.Parse(FileLength) * 1024)
{
string fileextension = System.IO.Path.GetExtension(fileup.FileName).ToLower();
string filename1 = DateTime.Now.ToString("yyyy") + "/" + DateTime.Now.ToString("MM");
string filename = DateTime.Now.ToString("yyyyMMddHHmmss") + fileextension;//上传的文件名(自定义)+ 文件后缀
String[] allowedextensions = xten.Split(',');
for (int i = 0; i < allowedextensions.Length; i++)
{
string lei = allowedextensions[i];
if (lei.IndexOf(".") == (-1))
{
lei = "." + lei;
}
if (fileextension == lei)
{
fileok = true;
break;
}
}
if (!System.IO.Directory.Exists(HttpContext.Current.Server.MapPath("../upload/img/" + filename1)))
{
System.IO.Directory.CreateDirectory(HttpContext.Current.Server.MapPath("../upload/img/" + filename1));
}
if (fileok == true)
{
fileup.SaveAs(HttpContext.Current.Server.MapPath("../upload/img/" + filename1 + "/") + "\\" + filename);
string Result = "";
using (var fs = fileup.InputStream)
{
//将该文件流保存到OSS中
Result = StoreFile("ColumnList/" + filename1 + "/" + filename, fs);
}
context.Response.Write("{msg: 1, msgbox: \"" + Result + "\"}");
}
else
{
context.Response.Write("{msg: 0, msgbox: \"文件类型错误!正确格式为:" + xten + "\"}");
}
}
else
{
context.Response.Write("{msg: 0, msgbox: \"文件大小不能超过" + FileLength + "KB!\"}");
}
}
context.Response.End();
}引用
/// <summary>
/// 存储文件到阿里云OSS{文件名/数据流/数据类型}
/// </summary>
/// <param name="file_name"></param>
/// <param name="image_data"></param>
/// <param name="content_type"></param>
/// <returns></returns>
public static string StoreFile(string file_name, Stream fs)
{
var client = new OssClient("Your EndPoint", "Your AccessKeyId", "Your AccessKeySecret");
try
{
var meta = new ObjectMetadata();
meta.ContentType = GetMimeMapping(file_name);
client.PutObject("Your BucketName", file_name, fs, meta);
return string.Format("http://file.400301.com/{0}", file_name);
}
catch (Exception ex)
{
return ex.Message;
}
}
/// <summary>
/// 获取文件类型
/// </summary>
/// <param name="file_name"></param>
/// <returns></returns>
public static string GetMimeMapping(string fileName)
{
string mimeType = "application/octet-stream";
string ext = Path.GetExtension(fileName).ToLower();
RegistryKey regKey = Registry.ClassesRoot.OpenSubKey(ext);
if (regKey != null && regKey.GetValue("Content Type") != null)
{
mimeType = regKey.GetValue("Content Type").ToString();
}
return mimeType;
}