csharp: Gets a files formatted size.
/*
ASP.NET 默认上传文件是4M ,可以修改服务配置.. <system.web>
<!-- 指示 ASP.NET 支持的最大文件上载大小。
该限制可用于防止因用户将大量文件传递到该服务器而导致的拒绝服务攻击。
指定的大小以 KB 为单位。默认值为 4096 KB (4 MB)。最大为:2097151 KB
此处改为40M大小的文件上传限制。
-->
<httpRuntime maxRequestLength = "2097151" useFullyQualifiedRedirectUrl="true"/>
</system.web>
*/ /// <summary>
/// Gets a files formatted size.
/// </summary>
/// <param name="file">The file to return size of.</param>
/// <returns></returns>
//public static string GetFileSize(this FileInfo file)
//{
// try
// {
// //determine all file sizes
// double sizeinbytes = file.Length;
// double sizeinkbytes = Math.Round((sizeinbytes / 1024));
// double sizeinmbytes = Math.Round((sizeinkbytes / 1024));
// double sizeingbytes = Math.Round((sizeinmbytes / 1024));
// if (sizeingbytes > 1)
// return string.Format("{0} GB", sizeingbytes); //returns size in gigabytes
// else if (sizeinmbytes > 1)
// return string.Format("{0} MB", sizeinmbytes); //returns size in megabytes if less than one gigabyte
// else if (sizeinkbytes > 1)
// return string.Format("{0} KB", sizeinkbytes); //returns size in kilabytes if less than one megabyte
// else
// return string.Format("{0} B", sizeinbytes); //returns size in bytes if less than one kilabyte
// }
// catch { return "Error Getting Size"; } //catches any possible error and just returns error getting size
//} /// <summary>
/// Gets a files formatted size.
/// 获得文件大小
/// 涂聚文
///
/// Geovin Du
/// </summary>
/// <param name="file"></param>
/// <returns></returns>
public string GetFileSize(double file)
{
try
{
//1.
double byteSize = Math.Round(file / 1024 * 100) * 0.01;
string suffix = "KB";
if (byteSize > 1000)
{
byteSize = Math.Round(byteSize * .001 * 100) * .01;
suffix = "MB";
}
double byteGSize = Math.Round(byteSize / 1024 * 100) * 0.01;
if (byteGSize > 1000)
{
byteGSize = Math.Round(byteGSize * .001 * 100) * .01;
suffix = "GB";
}
return byteSize.ToString() + suffix; //2.
//determine all file sizes
//double sizeinbytes = file;
//double sizeinkbytes = Math.Round((sizeinbytes / 1024));
//double sizeinmbytes = Math.Round((sizeinkbytes / 1024));
//double sizeingbytes = Math.Round((sizeinmbytes / 1024));
//if (sizeingbytes > 1)
// return string.Format("{0:0.00} GB", sizeingbytes); //returns size in gigabytes
//else if (sizeinmbytes > 1)
// return string.Format("{0:0.00} MB", sizeinmbytes); //returns size in megabytes if less than one gigabyte
//else if (sizeinkbytes > 1)
// return string.Format("{0:0.00} KB", sizeinkbytes); //returns size in kilabytes if less than one megabyte
//else
// return string.Format("{0} B", sizeinbytes); //returns size in bytes if less than one kilabyte
}
catch
{
return "Error Getting Size";
} //catches any possible error and just returns error getting size
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Button1_Click(object sender, EventArgs e)
{
int FileNum = 0;
// Clear the BulletedList.
BulletedList1.Items.Clear();
string filepath = Server.MapPath("./") + "UploadFile";
string filename = DateTime.Now.ToString("yyyyMMddHHmmss");
HttpFileCollection hfc = Request.Files;
//1
for (int i = 0; i < hfc.Count; i++)
{
HttpPostedFile hpf = hfc[i];
if (hfc[i].ContentLength > 0)
{
hpf.SaveAs(filepath + "/" + filename + System.IO.Path.GetFileName(hpf.FileName));
FileNum++;
//uploadFiles.SaveAs(filepath + "/" + filename + System.IO.Path.GetFileName(hpf.FileName));
FileUpload1.SaveAs(filepath + "/" + filename + System.IO.Path.GetFileName(hpf.FileName));
FileUpload2.SaveAs(filepath + "/" + filename + System.IO.Path.GetFileName(hpf.FileName));
}
else
{
Response.Write("<script>alert('请选择你要上传的文件!')</script>");
//跳出for循环
i = hfc.Count;
break;
}
}
Response.Write("<script>alert('上传成功!')</script>");
Response.Write("共上传成功的文件个数为:" + FileNum + "个");
FileNum = 0; // Check to see if at least one file was specified.
//if (FileUpload1.HasFile | FileUpload2.HasFile)
//{
// Label1.Text = "The file collection consists of:"; // // Get the HttpFileCollection.
// //HttpFileCollection hfc = Request.Files;
// foreach (String h in hfc.AllKeys)
// {
// // Add an item to the BulletedList if a file
// // was specified for the corresponding control.
// if (hfc[h].ContentLength > 0)
// {
// BulletedList1.Items.Add(Server.HtmlEncode(hfc[h].FileName));
// } // }
// for (int i = 0; i < hfc.Count; i++)
// {
// filename = DateTime.Now.ToString("yyyyMMddHHmmss");
// HttpPostedFile hpf = hfc[i];
// hpf.SaveAs(filepath + "/" + filename + System.IO.Path.GetFileName(hpf.FileName));
// }
//}
//else
//{
// Label1.Text = "You did not specify any files to upload or "+ hfc.Count.ToString()+
// "the file(s) could not be found.";
//}
}
/// <summary>
///
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void Page_Load(object sender, EventArgs e)
{
this.AddFile.Click += new System.EventHandler(this.AddFile_Click);
this.RemvFile.Click += new System.EventHandler(this.RemvFile_Click);
this.Upload.ServerClick += new System.EventHandler(this.Upload_ServerClick);
} /// <summary>
/// AddFile will add the path of the client side file that is currently in the PostedFile
/// property of the HttpInputFile control to the listbox.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void AddFile_Click(object sender, System.EventArgs e)
{
if (Page.IsPostBack == true)
{
hif.Add(FindFile);
double size = FindFile.PostedFile.ContentLength;
string filesize = GetFileSize(size);
ListBox1.Items.Add(FindFile.PostedFile.FileName + " 文件大小:" + filesize);
// FindFile.PostedFile.ContentLength.ToString();
}
else
{ }
} /// <summary>
/// RemvFile will remove the currently selected file from the listbox.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void RemvFile_Click(object sender, System.EventArgs e)
{
if (ListBox1.Items.Count != 0)
{ hif.RemoveAt(ListBox1.SelectedIndex);
ListBox1.Items.Remove(ListBox1.SelectedItem.Text);
} } /// <summary>
/// Upload_ServerClick is the server side script that will upload the files to the web server
/// by looping through the files in the listbox.
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
public void Upload_ServerClick(object sender, System.EventArgs e)
{
string baseLocation = Server.MapPath("/upload/");
string status = ""; if ((ListBox1.Items.Count == 0) && (filesUploaded == 0))
{
Label1.Text = "Error - a file name must be specified.";
return; }
else
{
foreach (System.Web.UI.HtmlControls.HtmlInputFile HIF in hif)
{
try
{
string fn = System.IO.Path.GetFileName(HIF.PostedFile.FileName);
HIF.PostedFile.SaveAs(baseLocation + fn);
filesUploaded++;
status += fn + "<br>";
}
catch (Exception err)
{
Label1.Text = "Error saving file " + baseLocation + "<br>" + err.ToString();
}
} if (filesUploaded == hif.Count)
{
Label1.Text = "These " + filesUploaded + " file(s) were uploaded:<br>" + status;
}
hif.Clear();
ListBox1.Items.Clear();
} }
csharp: Gets a files formatted size.的更多相关文章
- e.target.files[0]层层剖析
因为我现在拿到的一个功能是上传时过滤掉很大尺寸的图片,所以需要来拿到上传时选择图片的size,所以有了这篇博文 不多说 上代码 $('input').change(function(e){ 1️⃣.c ...
- 在使用document.getElementById('xxx').files[0]时,关于计算图片大小
在使用文件上传属性时,一直好奇图片上传的大小时如何计算的,最近在使用中认识到的计算方式: 首先,图片大小的存储基本单位是字节(byte).每个字节是由8个比特(bit)组成.所以,一个字节在十进制中 ...
- Upload Files In ASP.NET Core 1.0 (Form POST And JQuery Ajax)
Uploading files is a common requirement in web applications. In ASP.NET Core 1.0 uploading files and ...
- 7zip File: How to Uncompress 7z files on Ubuntu, Debian, Fedora
转:http://www.thegeekstuff.com/2010/04/7z-7zip-7za-file-compression/ Question: How do I uncompress a ...
- $('xx')[0].files[0]
①首先得明白jQuery对象只能使用jQuery对象的属性和方法,JavaScript对象只能使用JavaScript对象的属性和方法: ②files[0]是JavaScript的属性: ③$('xx ...
- Java性能提示(全)
http://www.onjava.com/pub/a/onjava/2001/05/30/optimization.htmlComparing the performance of LinkedLi ...
- [Hive - LanguageManual] Statistics in Hive
Statistics in Hive Statistics in Hive Motivation Scope Table and Partition Statistics Column Statist ...
- Hadoop集群-HDFS集群中大数据运维常用的命令总结
Hadoop集群-HDFS集群中大数据运维常用的命令总结 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 本篇博客会简单涉及到滚动编辑,融合镜像文件,目录的空间配额等运维操作简介.话 ...
- YASM User Manual
This document is the user manual for the Yasm assembler. It is intended as both an introduction and ...
随机推荐
- 有向图的拓扑排序的理解和简单实现(Java)
如果图中存在环(回路),那么该图不存在拓扑排序,在这里我们讨论的都是无环的有向图. 什么是拓扑排序 一个例子 对于一部电影的制作过程,我们可以看成是一个项目工程.所有的工程都可以分为若干个" ...
- CSS04--对齐、 布局、导航栏
我们接着上一章,继续学习一些有关对齐.布局.导航栏的内容. 1.水平块对齐: 1.1 margin:把左和右外边距设置为 auto,规定的是均等地分配可用的外边距.结果就是居中的元素 .c ...
- GoLand 调试 Go
Goland 调试 Go 从百度得知 VS Code 不能很好的支持 Go 的调试真让人肝儿疼 -- 引言 准备 Win 10 Pro Go(Version 1.10) GoLand(2018.3) ...
- windows下python管理右键菜单
实现很简单,不记得什么时候写的了,贴出来希望能有所价值 """ Windows中创建右键菜单 """ import os import sy ...
- Mac 10.12原生方法对NTFS分区进行读写的配置
说明:不一定有效,最简单的方法就是不用NTFS,直接FAT32,对于大文件就用切割. 方法: 1.确定U盘名称 diskutil list ls /Volumes/ 2.比如我找到的U盘名称为Unti ...
- Java异常机制关键字总结,及throws 和 throw 的区别
在Java的异常机制中,时常出现五个关键字:try , catch , throw , throws , finally. 下面将总结各个关键字的用法,以及throw和throws的区别: (1) t ...
- 转载:怎么用eclipse开发C++程序(以后备用,待实现),使用CDT
一:准备工作:需下载以下三个软件包 a).Eclipse 3.1 官方站点: http://www.eclipse.org 工具下载地址:http://www.eclipse.org/download ...
- 转载:GitHub 新手详细教程
GitHub 新手详细教程 https://blog.csdn.net/Hanani_Jia/article/details/77950594
- CNN理解与实现
CNN理解与实现 组成部分 Convolution Layer Pool Layer: Max-pooling layer Average-pooling layer Full Connected(F ...
- Generic-Host 快速使用指南
.NETCORE 中的 Generic Host 本文以自己在工作中学习和使用.net core generic-host 作一个总结. 前言 在创建的ASPNETCORE项目中,我们可以在Main( ...