您好,欢迎来到养宠指南。
搜索
您的当前位置:首页

JavaScript代码实现txt文件的上传预览功能

2022-06-15 来源:养宠指南
摘要
Web Uploader 项目,符合你的要求。1、引入资源使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF。<!--引入CSS--><link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css"><!--引入JS--><script type="t
本篇文章给大家介绍了JavaScript代码实现txt文件的上传预览功能,文字代码相结合的形式给大家介绍的非常详细,需要的朋友参考下吧

今天做项目刚好碰到这个记录一下。因为是简单的txt文件,只涉及文本,如果需要涉及图片预览就需要使用papaparse和jschardet,此处不多叙述。

表单按钮使用js的onchange=”uploadfile()” 事件,function函数代码如下所示:

效果如下:

提示上传文件类型错误这里写图片描述这里写图片描述

提示上传文件类型错误

补充:

js 上传文件预览

1. FILE API

html5提供了FIle和FileReader两个方法,可以读取文件信息并读取文件。

2. example

以DataURL的形式读取到的文件是一个字符串,类似于data:image/jpeg;base64,/9j/4AAQSk...(base64编码)...,

常用于设置图像。如果需要服务器端处理,把字符串base64,后面的字符发送给服务器并用Base64解码就可以得到原始文件的二进制内容。

3. 解释

上面的代码还演示了JavaScript的一个重要的特性就是单线程执行模式。在JavaScript中,浏览器的JavaScript执行引擎在执行JavaScript代码时,总是以单线程模式执行,也就是说,任何时候,JavaScript代码都不可能同时有多于1个线程在执行。

你可能会问,单线程模式执行的JavaScript,如何处理多任务?

在JavaScript中,执行多任务实际上都是异步调用,比如上面的代码:

reader.readAsDataURL(file);

就会发起一个异步操作来读取文件内容。因为是异步操作,所以我们在JavaScript代码中就不知道什么时候操作结束,因此需要先设置一个回调函数:

当文件读取完成后,JavaScript引擎将自动调用我们设置的回调函数。执行回调函数时,文件已经读取完毕,所以我们可以在回调函数内部安全地获得文件内容。

上面是我整理给大家的,希望今后会对大家有帮助。

相关文章:

JQuery ajax返回JSON时的处理方式

如何解决JQuery ajaxSubmit提交中文乱码

JQuery ajax 返回json时出现中文乱码该如何解决

小编还为您整理了以下内容,可能对您也有帮助:

我需要一个js或者jquery能批量上传图片+预览的功能。急~~~急~~~急~~

Web Uploader 项目,符合你的要求。

1、引入资源

使用Web Uploader文件上传需要引入三种资源:JS, CSS, SWF。

<!--引入CSS-->

<link rel="stylesheet" type="text/css" href="webuploader文件夹/webuploader.css">

<!--引入JS-->

<script type="text/javascript" src="webuploader文件夹/webuploader.js"></script>

<!--SWF在初始化的时候指定,在后面将展示-->

2、Html

首先需要准备一个按钮,和一个用来存放添加的文件信息列表的容器。

<!--dom结构部分-->

<div id="uploader-demo">

    <!--用来存放item-->

    <div id="fileList" class="uploader-list"></div>

    <div id="filePicker">选择图片</div>

</div>

3、Javascript

创建Web Uploader实例// 初始化Web Uploader

var uploader = WebUploader.create({

    // 选完文件后,是否自动上传。

    auto: true,

    // swf文件路径

    swf: BASE_URL + '/js/Uploader.swf',

    // 文件接收服务端。

    server: 'http://webuploader.app.com/server/fileupload.php',

    // 选择文件的按钮。可选。

    // 内部根据当前运行是创建,可能是input元素,也可能是flash.

    pick: '#filePicker',

    // 只允许选择图片文件。

    accept: {

        title: 'Images',

        extensions: 'gif,jpg,jpeg,bmp,png',

        mimeTypes: 'image/*'

    }

});

监听fileQueued事件,通过uploader.makeThumb来创建图片预览图。

PS: 这里得到的是Data URL数据,IE6、IE7不支持直接预览。可以借助FLASH或者服务端来完成预览。

// 当有文件添加进来的时候

uploader.on( 'fileQueued', function( file ) {

    var $li = $(

            '<div id="' + file.id + '" class="file-item thumbnail">' +

                '<img>' +

                '<div class="info">' + file.name + '</div>' +

            '</div>'

            ),

        $img = $li.find('img');

    // $list为容器jQuery实例

    $list.append( $li );

    // 创建缩略图

    // 如果为非图片文件,可以不用调用此方法。

    // thumbnailWidth x thumbnailHeight 为 100 x 100

    uploader.makeThumb( file, function( error, src ) {

        if ( error ) {

            $img.replaceWith('<span>不能预览</span>');

            return;

        }

        $img.attr( 'src', src );

    }, thumbnailWidth, thumbnailHeight );

});

然后剩下的就是上传状态提示了,当文件上传过程中, 上传成功,上传失败,上传完成都分别对应uploadProgress, uploadSuccess, uploadError, uploadComplete事件。

// 文件上传过程中创建进度条实时显示。

uploader.on( 'uploadProgress', function( file, percentage ) {

    var $li = $( '#'+file.id ),

        $percent = $li.find('.progress span');

    // 避免重复创建

    if ( !$percent.length ) {

        $percent = $('<p class="progress"><span></span></p>')

                .appendTo( $li )

                .find('span');

    }

    $percent.css( 'width', percentage * 100 + '%' );

});

// 文件上传成功,给item添加成功class, 用样式标记上传成功。

uploader.on( 'uploadSuccess', function( file ) {

    $( '#'+file.id ).addClass('upload-state-done');

});

// 文件上传失败,显示上传出错。

uploader.on( 'uploadError', function( file ) {

    var $li = $( '#'+file.id ),

        $error = $li.find('div.error');

    // 避免重复创建

    if ( !$error.length ) {

        $error = $('<div class="error"></div>').appendTo( $li );

    }

    $error.text('上传失败');

});

// 完成上传完了,成功或者失败,先删除进度条。

uploader.on( 'uploadComplete', function( file ) {

    $( '#'+file.id ).find('.progress').remove();

});

更多细节,请查看js源码。

JSP上传文本文件,并在页面显示其内容

jsp上传文本并显示内容:

<input type="file" onchange="onFileSelected(event)">

<textarea id="result"></textarea>

function onFileSelected(event) {

var selectedFile = event.target.files[0];

var reader = new FileReader();

var result = document.getElementById("result");

reader.onload = function(event) {

result.innerHTML = event.target.result;

};

reader.readAsText(selectedFile);

}

显示:

<c:import var="data"

url="http://www.example.com/file.txt"

scope="session"/>

<c:out value="${data}"/>

单纯依靠HTML和javascript能实现文件的上传下载吗

是可以的,HTML5的JavaScript Flie API,更具体的请花心思google

http://code.tutsplus.com/tutorials/uploading-files-with-ajax--net-21077

养宠指南还为您提供以下相关内容希望对您有帮助:

JSP上传文本文件,并在页面显示其内容

jsp上传文本并显示内容: &lt;textarea id="result"&gt;&lt;/textarea&gt; function onFileSelected(event) { var selectedFile = event.target.files[0];var reader = new FileReader();var result = document.getElementById("resu...

我需要一个js或者jquery能批量上传图片+预览的功能。急~~~急~~~急...

// 文件上传过程中创建进度条实时显示。uploader.on( 'uploadProgress', function( file, percentage ) { var $li = $( '#'+file.id ), $percent = $li.find('.progress span'); // 避免重复创建 ...

Axure怎么制作文件上传进度条效果原型?

javascript:openFile(txt=&gt;{$axure(“@Success”).show();});2)再给【按钮】添加【载入时】交互,操作如上一致,代码如下:javascript:window.openFile=function(callBack){varelement=document.createElement(‘input’);e...

jsp有办法实现word/excel的在线预览吗

//单个文件上传可以用 File files,String filesFileName,String filesContentType //名称要与jsp中的name相同(三个变量都要生成get,set)private File[] files;// 要以File[]变量名开头 private String[] filesFileName;/...

Asp.net图片上传实现预览效果的简单代码

这篇文章介绍了Asp net图片上传实现预览效果的简单代码 有需要的朋友可以参考一下 在页面上放入一个上传控件和一个图片控件 复制代码 代码如下: &lt;asp:FileUpload ID="FileUpload " runat="server" onpropertychange="...

php 如何实现在线预览文件如:txt,doc,pdf等

第一种 预览 file = fopen($path,"r"); // 打开文件 // 输入文件标签 Header("Content-type: application/pdf");// Header("filename:" . $file_name);// 输出文件内容 echo fread($file,filesize($pat...

前端上传文件的几种方法

第一种:经典的form和input上传。设置form的aciton为后端页面,enctype="multipart/form-data",type=‘post’提交使用input选择文件,设置好其他input的值,点击提交,将文件数据及签名等认证信息发送到form设置的action对应的页...

js中OpenTextFile 方法

一、功能实现核心:FileSystemObject 对象 要在java-script中实现文件操作功能,主要就是依靠FileSystemobject对象。 二、FileSystemObject编程 使用FileSystemObject 对象进行编程很简单,一般要经过如下的步骤: 创建FileSystemObject...

如何使用javascript在html5上实现读取text文件并进行实时显示

你需要在本地架设网络环境,可以用nginx做个静态的服务,把要请求的txt放到服务目录里。就可以通过http请求了。

asp代码的上传txt问题

就是增加一个浏览文件的功能,可以把任意名字任意路径的txt上传并实现应有功能。 如何修改?代码如下:&lt;!--#include file="conn.asp"--&gt;&lt;%filespec=server.mappath("\test\p.txt") Const ForReading = 1Dim fso, theFile, ret...

上一篇:如何使用Vue控制字符和字节显示个数

下一篇:vue中使用iview自定义验证关键词输入框问题及解决方法

Top