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 ...
随机推荐
- day06 --class --home
# -*- coding: utf-8 -*-# @Time : 2018/12/26 20:29# @Author : Endless-cloud# @Site : # @File : day 06 ...
- Springboot接口简单实现生成MySQL插入语句
Springboot接口简单实现调用接口生成MySQL插入语句 在实际测试中,有这样一个需求场景,比如:在性能压力测试中,可能需要我们事先插入数据库中一些相关联的数据. 我们在实际测试中,遇到问题,需 ...
- 队列的理解和实现(二) ----- 链队列(java实现)
什么是链队列 链队是指采用链式存储结构实现的队列,通常链队用单链表俩表示.一个链队显然需要两个分别指示队头和队尾的指针,也称为头指针和尾指针,有了这两个指针才能唯一的确定. package 链队列; ...
- 架构师养成记--31.Redis的几种类型
String类型 Redis一共分为五种基本数据类型:String.Hash.List.Set.ZSet String类型是包含很多张类型的特殊类型,并且是二进制安全的.比如对序列化的对象进行存储,比 ...
- JDK源码分析(10) ConcurrentLinkedQueue
概述 我们要实现一个线程安全的队列有两种实现方法一种是使用阻塞算法,另一种是使用非阻塞算法.使用阻塞算法的队列可以用一个锁(入队和出队用同一把锁)或两个锁(入队和出队用不同的锁)等方式来实现,而非阻塞 ...
- [转] Java中Comparator进行对象排序
[From] https://blog.51cto.com/thinklili/2063244 Java在8后引入了lambda表达式和流,使得排序方法有了变化 class User { int id ...
- Java学习之路(七):泛型
泛型的概述和基本使用 作用:把类型明确的工作推前到创建对象或者调用方法的时候 泛型是一种参数化类型,把类型当做参数一样传递来明确集合的元素类型 泛型的好处 提高安全性 省去强转的麻烦 泛型的基本使用 ...
- 初始设置ubuntu 16.04 Vps部署rails
参考 https://blog.longwin.com.tw/2005/12/ssh_keygen_no_passwd/ 1 选择搬瓦工左边菜单栏中的“Root password modificati ...
- transition过渡效果
语法:transition: property duration timing-function delay; transition-property 规定设置过渡效果的 CSS 属性的名称.tran ...
- linux 升级-杂
apt-cache search linux apt-cache search linux | grep generic apt-cache search linux | grep 4.10. apt ...