- 浏览: 694224 次
- 性别:
- 来自: 沈阳
文章分类
- 全部博客 (270)
- Ant Tool Script (12)
- XMLDigest (5)
- MyEclipse8.6 (1)
- RedHat (5)
- SVNVersionController (4)
- BatOperation (6)
- JspAndFaceWeb (66)
- javaSwing (18)
- PHP (12)
- J2SE (6)
- TestToolAndTestManual (12)
- C# (34)
- Java PatternDesign (20)
- Axis2AndWebService (5)
- ITLive (2)
- DBAndControl (10)
- C/C++ (8)
- Andriod (7)
- Python (7)
- JavaWork (16)
- Android-QA (1)
- Apache-Wicket (1)
- POI (1)
- JQuery (2)
- Struts2 (1)
- Flex&Flash (6)
- sdsdsd (0)
- 1212 (0)
最新评论
-
anayomin:
对九楼继续改进
public static <T> ...
Java List 分页 -
H4X0R:
来学习学习,赞一个
Aqua Data Studio 导出SQL -
yankai0219:
现在出现这个错误 Fatal error: Class 'PH ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
yankai0219:
您好,我在搭建环境中提示PHPUnit_Framework_T ...
纯PHP搭建Apache+Eclipse+xDebug+PHPUnit+MakeGood -
wilsonchen:
chenhailong 写道wilsonchen 写道chen ...
C# RSA和Java RSA互通
File API 实现 上传功能
- 博客分类:
- JspAndFaceWeb
File API是HTML 5标准
具体的HTML 5的定义如下:
下面我们来实践一下:
1.首先我们要判断浏览器是否支持FIle API
// Check for the various File API support. if (window.File && window.FileReader && window.FileList && window.Blob) { // Great success! All the File APIs are supported. } else { alert('The File APIs are not fully supported in this browser.'); }
很简单,就是用window对象来判断的。
2.然后我们就实装一下
2.1 我们使用input标签来实现File API
<input type="file" id="files" name="files[]" multiple /> <output id="list"></output> <script> function handleFileSelect(evt) { var files = evt.target.files; // FileList object // files is a FileList of File objects. List some properties. var output = []; for (var i = 0, f; f = files[i]; i++) { output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ', f.size, ' bytes, last modified: ', f.lastModifiedDate.toLocaleDateString(), '</li>'); } document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>'; } document.getElementById('files').addEventListener('change', handleFileSelect, false); </script>
如果有点javascript基础的人都明白上面是什么意思:
操作为将桌面的图标或者我们电脑的图片拖进input标签内,就能看到实践效果
2.2用div来实现File API
<div id="drop_zone">Drop files here</div> <output id="list"></output> <script> function handleFileSelect(evt) { evt.stopPropagation(); evt.preventDefault(); var files = evt.dataTransfer.files; // FileList object. // files is a FileList of File objects. List some properties. var output = []; for (var i = 0, f; f = files[i]; i++) { output.push('<li><strong>', escape(f.name), '</strong> (', f.type || 'n/a', ') - ', f.size, ' bytes, last modified: ', f.lastModifiedDate.toLocaleDateString(), '</li>'); } document.getElementById('list').innerHTML = '<ul>' + output.join('') + '</ul>'; } function handleDragOver(evt) { evt.stopPropagation(); evt.preventDefault(); evt.dataTransfer.dropEffect = 'copy'; // Explicitly show this is a copy. } // Setup the dnd listeners. var dropZone = document.getElementById('drop_zone'); dropZone.addEventListener('dragover', handleDragOver, false); dropZone.addEventListener('drop', handleFileSelect, false); </script>
操作如上
2.3用FIleReader实现File API
<style> .thumb { height: 75px; border: 1px solid #000; margin: 10px 5px 0 0; } </style> <input type="file" id="files" name="files[]" multiple /> <output id="list"></output> <script> function handleFileSelect(evt) { var files = evt.target.files; // FileList object // Loop through the FileList and render image files as thumbnails. for (var i = 0, f; f = files[i]; i++) { // Only process image files. if (!f.type.match('image.*')) { continue; } var reader = new FileReader(); // Closure to capture the file information. reader.onload = (function(theFile) { return function(e) { // Render thumbnail. var span = document.createElement('span'); span.innerHTML = ['<img class="thumb" src="', e.target.result, '" title="', escape(theFile.name), '"/>'].join(''); document.getElementById('list').insertBefore(span, null); }; })(f); // Read in the image file as a data URL. reader.readAsDataURL(f); } } document.getElementById('files').addEventListener('change', handleFileSelect, false); </script>
操作如上
2.4 有ProcessBar的File API实现
<style> #progress_bar { margin: 10px 0; padding: 3px; border: 1px solid #000; font-size: 14px; clear: both; opacity: 0; -moz-transition: opacity 1s linear; -o-transition: opacity 1s linear; -webkit-transition: opacity 1s linear; } #progress_bar.loading { opacity: 1.0; } #progress_bar .percent { background-color: #99ccff; height: auto; width: 0; } </style> <input type="file" id="files" name="file" /> <button onclick="abortRead();">Cancel read</button> <div id="progress_bar"><div class="percent">0%</div></div> <script> var reader; var progress = document.querySelector('.percent'); function abortRead() { reader.abort(); } function errorHandler(evt) { switch(evt.target.error.code) { case evt.target.error.NOT_FOUND_ERR: alert('File Not Found!'); break; case evt.target.error.NOT_READABLE_ERR: alert('File is not readable'); break; case evt.target.error.ABORT_ERR: break; // noop default: alert('An error occurred reading this file.'); }; } function updateProgress(evt) { // evt is an ProgressEvent. if (evt.lengthComputable) { var percentLoaded = Math.round((evt.loaded / evt.total) * 100); // Increase the progress bar length. if (percentLoaded < 100) { progress.style.width = percentLoaded + '%'; progress.textContent = percentLoaded + '%'; } } } function handleFileSelect(evt) { // Reset progress indicator on new file selection. progress.style.width = '0%'; progress.textContent = '0%'; reader = new FileReader(); reader.onerror = errorHandler; reader.onprogress = updateProgress; reader.onabort = function(e) { alert('File read cancelled'); }; reader.onloadstart = function(e) { document.getElementById('progress_bar').className = 'loading'; }; reader.onload = function(e) { // Ensure that the progress bar displays 100% at the end. progress.style.width = '100%'; progress.textContent = '100%'; setTimeout("document.getElementById('progress_bar').className='';", 2000); } // Read in the image file as a binary string. reader.readAsBinaryString(evt.target.files[0]); } document.getElementById('files').addEventListener('change', handleFileSelect, false); </script>
发表评论
-
2817955743
2014-11-01 19:47 02817955743 123456789 htt ... -
JQuery的替代品Zeptojs
2014-07-30 10:24 0Zepto的小巧已经不是JQuery的可以媲美的,Zepto ... -
121212
2014-01-30 11:04 0http://metroui.org.ua/example ... -
JS 操作Cookie,记录帐号信息
2013-11-25 16:49 1486嘻嘻,今天咱整点东西,如题 主页面和JS操作,已经在 ... -
How to install two tomcat in one computer
2013-10-28 11:31 1534Today,I get a problem,show in ... -
Jackson 双引号的问题
2013-08-28 15:57 3751当用执行下面的代码的时候 String json ... -
flex
2013-06-30 19:21 0<?xml version="1.0&qu ... -
iBatis简单实践
2013-06-18 10:29 1477今天我实践了下ibatis框架,感觉也不错,很简单。嘻嘻,大 ... -
Spring的长篇大论
2013-02-07 09:06 0很长时间了,时间过的真快啊,一晃3年过去了。3年我变了很多 ... -
JQuery的Flexigrid的API使用
2013-01-16 14:21 13488JQuery Flexigrid 是一个不错的table插 ... -
bacup
2013-01-16 06:06 0我备份了,怎么没有反应啊 http://www.micr ... -
Spring MVC and AJAX with JSON
2013-01-05 14:17 28461. maven 配置 <!-- Spr ... -
JQuery ajax use json communicate with server
2013-01-05 14:12 1237好久没写文章了,我也心痒痒的,嘿嘿。现在写一篇文章。 ... -
SpringMVC wizard简单示例
2012-12-28 17:02 0public class UserController ... -
get access time from tomcat log
2012-12-25 10:14 1139下面给出我得到tomcat的Access Time的方法 ... -
JSF简单实践
2012-11-21 12:03 957希望多了,破灭的机会就会更多,所以简简单单的希望,然后实现它, ... -
Extjs Template两个小例子
2012-11-15 09:40 1498今天用Extjs Template做了两个小例子嘿 代 ... -
Tomcat Romete Debug
2012-12-25 10:14 991是我弟兄告诉我的。备忘录一下。 1,在Tom ... -
YUI
2012-10-29 15:05 0http://yuilibrary.com/forum/vie ... -
DBUnit的简单实践
2012-10-19 10:58 1401我不知道什么是失败,我也不知道失败后会是怎么样的天和地, ...
相关推荐
以上就是.NET WebAPI实现文件上传功能的详细步骤,以及如何在MVC中调用该API。在实际开发中,你可能还需要考虑其他因素,如并发处理、文件存储策略等。希望这些信息能帮助你理解和实现文件上传功能。
- 使用`FileAPI.upload`来实现图片的上传功能。 整个过程在前端完成,不需要后端代码参与,减少了服务器的压力,同时也降低了网络延时对用户操作的影响,提高了响应速度和用户体验。需要注意的是,虽然大多数现代...
在实际项目中,还要注意性能优化、错误处理和安全性检查,以提供稳定可靠的文件上传功能。在提供的`MvcUploadFile`示例中,可能包含了实现这些功能的代码示例,你可以参考并根据自己的需求进行调整。
ASP.NET Core 3.1 WebAPI 上传功能详解 在ASP.NET Core 3.1中,WebAPI提供了强大的功能来处理文件上传,这使得开发者能够构建健壮的、高效的文件上传系统。本教程将深入探讨如何在WebAPI中实现文件上传,并通过实际...
通过File Station的API,开发者可以集成这些功能到自己的应用程序中,实现自动化工作流程或定制化服务。 文档中的版权声明强调,所有技术信息均属于Synology公司的财产,未经书面许可,不得复制或用于设计、制造或...
在Web开发中,WebAPI是ASP.NET框架的一部分,用于构建RESTful服务,它允许客户端(如浏览器、移动应用或桌面应用)通过HTTP协议与服务器...理解并熟练掌握这些知识点,可以帮助开发者实现安全、高效的文件上传功能。
在IT行业中,API(应用程序接口)是软件系统之间交互的一种方式,它定义了不同软件组件如何相互作用。在这个“API实现FTP上传”的...易语言提供的API源码可以作为学习和参考,帮助开发者快速实现文件的FTP上传功能。
5. `TransmitFile`:将本地文件的数据传输到已打开的FTP服务器文件中,实现上传功能。 6. `FtpCloseFile`:关闭FTP服务器上的文件。 7. `InternetCloseHandle`:关闭会话句柄,释放资源。 8. `WSACleanup`:清理网络...
总的来说,"Imageupload"项目展示了如何结合JavaScript的File API和Canvas API实现图片的客户端压缩,再通过HTTP请求将压缩后的文件上传至服务器。这个过程涵盖了前端文件操作、图片处理、异步通信等多个技术点,是...
标题中的“用Canvas+Javascript FileAPI 实现一个图片剪切、滤镜处理、上传下载工具”指的是使用HTML5的Canvas元素和File API来创建一个功能丰富的图像编辑应用程序。Canvas是HTML5提供的一种画布,允许开发者通过...
在JavaScript(JS)中,实现一个输入元素`<input type="file">`的多文件上传功能是一项常见的需求,尤其在Web开发中。这个"js input file多个文件上传功能.zip"包含了一个实现这一功能的代码示例,适用于图片和其他...
FileAPI就是这样一个专门用于处理文件的JavaScript库,它提供了丰富的功能,让开发者能够轻松实现多重上传、拖放操作以及分块文件上传。这些特性对于现代Web应用程序来说尤其重要,因为它们极大地提升了用户体验并...
总结来说,PHP结合HTML5 File API和Ajax技术,可以实现无缝的文件上传功能,提供更好的交互体验。开发者需要注意的是,由于File API是HTML5的新特性,确保目标用户的浏览器支持此功能是必要的。同时,为了保证安全性...
在VB(Visual Basic)环境中,我们可以使用API(Application Programming Interface)来实现FTP的功能,如文件的上传和下载。API是操作系统提供的一组函数,允许开发者直接与操作系统交互,执行特定任务。在VB中,...
实现这一功能的关键在于HTML5的File API,它允许开发者对本地文件进行操作,包括读取、选择和上传。在HTML中,我们可以使用`<input type="file" multiple>`来创建一个支持多选的file控件。`multiple`属性使得用户...
在本场景中,我们将探讨如何利用ASP.NET WebAPI来实现文件的上传、下载以及图片的缩略图访问。 一、文件上传: 在ASP.NET WebAPI中,文件上传通常通过HttpPostedFileBase对象来处理。开发者需要创建一个API控制器...
《使用Canvas+JavaScript FileAPI构建图像处理工具》 在现代Web开发中,用户对交互性和功能性的需求日益增强,这催生了对图像处理工具的需求。本文将详细介绍如何利用HTML5的Canvas元素和JavaScript的File API来...
这两种方法都可以与Asp.Net WebApi结合,实现用户友好的文件上传功能。 首先,我们要理解Asp.Net WebApi的核心概念。WebApi是一个用于构建HTTP服务的框架,它允许通过HTTP协议来传输数据,这非常适合RESTful API的...
在.NET框架中,实现图片上传功能是Web应用中常见的需求,尤其在社交媒体、电商网站或者内容管理系统中。本文将详细讲解如何使用.NET来构建图片上传的功能,并着重介绍`upload_click`函数在这个过程中的作用。 首先...