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 ...
随机推荐
- [转] Foobar2000 DSP音效外挂元件-Part4
[转] Foobar2000 DSP音效外挂元件-Part4 在第1部分的文章里主要介绍了foobar2000预设的DSP音效调整,这些则示要介绍几个比较会用到的DSP外挂元件,在foobar2000 ...
- datetime 模块
datetimo 模块和time模块类似,只不过直接帮你定好了格式 import datetime time =datetime.datetime.now() print(time,type(time ...
- delphi 10.2 ----简单的递归函数例子求和
unit Unit10; interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, Syste ...
- 获取指定订阅下所有Azure ARM虚拟机配置(CPU核数,内存大小,磁盘信息)的使用情况
脚本内容: <# .SYNOPSIS This script grab all ARM VM VHD file in the subscription and caculate VHD size ...
- 2016级算法第六次上机-G.ModricWang likes geometry
1116 ModricWang likes geometry 思路 难题,非常考察几何知识,放在这里作为计算几何场次的最难的题. 原题地址 原版题解 代码
- 题目1000:计算a+b
问题来源 http://ac.jobdu.com/problem.php?pid=1000 问题描述 简单a+b测试,没什么限制,入门级题目. 问题分析 使用scanf.printf或者cin.cou ...
- python全栈开发_day13_迭代器和生成器
一:迭代器 1)可迭代对象 具有内置函数__iter__的数据就是可迭代对象 2)迭代器对象 具有内置函数__next__的数据就是迭代器对象 迭代器对象一定是可迭代对象,可迭代对象不一定是迭代器对象 ...
- CF1139D Steps to One 题解【莫比乌斯反演】【枚举】【DP】
反演套 DP 的好题(不用反演貌似也能做 Description Vivek initially has an empty array \(a\) and some integer constant ...
- Linux/Mac安装oh-my-zsh后不执行~/.bash_profile、~/.bashrc解决办法
安装了zsh之后默认启动执行脚本变为了-/.zshrc. 解决办法: Mac: 修改-/.zshrc文件,在其中添加:source -/.bash_profile.source -/.bashrc:注 ...
- [Xamarin] 透過StartActivityForResult傳值回來(转贴)
上一篇文章(開啟另外一個Activity 並且帶資料),提到了開啟一個新的Activity ,我們將值透過intent 帶到下個Activity 但是,如果我們開啟的Actrivity其實是有一個任務 ...