当前位置: 首页 > news >正文

电商主图设计网站自助快速建站

电商主图设计网站,自助快速建站,网站服务器可以更换吗,网投网站建设FileReader 备注&#xff1a; 此特性在 Web Worker 中可用。 FileReader 接口允许 Web 应用程序异步读取存储在用户计算机上的文件&#xff08;或原始数据缓冲区&#xff09;的内容&#xff0c;使用 File 或 Blob 对象指定要读取的文件或数据。 文件对象可以从用户使用 <…

FileReader

备注: 此特性在 Web Worker 中可用。

FileReader 接口允许 Web 应用程序异步读取存储在用户计算机上的文件(或原始数据缓冲区)的内容,使用 File 或 Blob 对象指定要读取的文件或数据。

文件对象可以从用户使用 <input> 元素选择文件而返回的 FileList 对象中获取,或者从拖放操作的 DataTransfer 对象中获取。

FileReader 只能访问用户明确选择的文件内容,无论是使用 HTML <input type="file"> 元素还是通过拖放。它不能用于从用户的文件系统中按路径名读取文件。要按路径名读取客户端文件系统上的文件,请使用文件系统访问 API。要读取服务器端文件,请使用 fetch(),如果跨源读取,则需要 CORS 权限。

EventTargetFileReader

构造函数

FileReader()

返回一个新的 FileReader 对象。

有关详细信息和示例,请参阅在 Web 应用程序中使用文件。

实例属性

FileReader.error 只读

一个表示在读取文件时发生的错误的 DOMException。

FileReader.readyState 只读

表示FileReader状态的数字。取值如下:

常量名描述
EMPTY0还没有加载任何数据。
LOADING1数据正在被加载。
DONE2已完成全部的读取请求。

FileReader.result 只读

文件的内容。该属性仅在读取操作完成后才有效,数据的格式取决于使用哪个方法来启动读取操作。

实例方法

FileReader.abort()

中止读取操作。在返回时,readyState 属性为 DONE

FileReader.readAsArrayBuffer()

开始读取指定的 Blob 中的内容,一旦完成,result 属性中将包含一个表示文件数据的 ArrayBuffer 对象。

FileReader.readAsBinaryString() 已弃用

开始读取指定的 Blob 中的内容。一旦完成,result 属性中将包含一个表示文件中的原始二进制数据的字符串。

FileReader.readAsDataURL()

开始读取指定的 Blob 中的内容。一旦完成,result 属性中将包含一个表示文件数据的 data: URL。

FileReader.readAsText()

开始读取指定的 Blob 中的内容。一旦完成,result 属性中将包含一个表示所读取的文件内容的字符串。可以指定可选的编码名称。

事件

使用 addEventListener() 方法或通过将事件侦听器分配给此接口的 oneventname 属性来侦听这些事件。一旦不再使用 FileReader,请使用 removeEventListener() 删除事件侦听器,以避免内存泄漏。

abort

当读取被中止时触发,例如因为程序调用了 FileReader.abort() 方法。

error

当读取由于错误而失败时触发。

load

读取成功完成时触发。

loadend

读取完成时触发,无论成功与否。

loadstart

读取开始时触发。

progress

读取数据时定期触发。

前端中这些接口在c++中代码实现如下:

1、FileReader接口定义 third_party\blink\renderer\core\fileapi\file_reader.idl

/** Copyright (C) 2010 Google Inc.  All rights reserved.* Copyright (C) 2011 Apple Inc. All rights reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions are* met:**     * Redistributions of source code must retain the above copyright* notice, this list of conditions and the following disclaimer.*     * Redistributions in binary form must reproduce the above* copyright notice, this list of conditions and the following disclaimer* in the documentation and/or other materials provided with the* distribution.*     * Neither the name of Google Inc. nor the names of its* contributors may be used to endorse or promote products derived from* this software without specific prior written permission.** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/// https://w3c.github.io/FileAPI/#APIASynch[ActiveScriptWrappable,Exposed=(Window,Worker)
] interface FileReader : EventTarget {[CallWith=ExecutionContext] constructor();// async read methods[RaisesException] void readAsArrayBuffer(Blob blob);[RaisesException] void readAsBinaryString(Blob blob);[RaisesException] void readAsText(Blob blob, optional DOMString label);[RaisesException] void readAsDataURL(Blob blob);void abort();// statesconst unsigned short EMPTY = 0;const unsigned short LOADING = 1;const unsigned short DONE = 2;[ImplementedAs=getReadyState] readonly attribute unsigned short readyState;// File or Blob datareadonly attribute (DOMString or ArrayBuffer)? result;readonly attribute DOMException? error;// event handler attributesattribute EventHandler onloadstart;attribute EventHandler onprogress;attribute EventHandler onload;attribute EventHandler onabort;attribute EventHandler onerror;attribute EventHandler onloadend;
};

2、FileReader接口实现

third_party\blink\renderer\core\fileapi\file_reader.h

third_party\blink\renderer\core\fileapi\file_reader.cc

/** Copyright (C) 2010 Google Inc.  All rights reserved.** Redistribution and use in source and binary forms, with or without* modification, are permitted provided that the following conditions are* met:**     * Redistributions of source code must retain the above copyright* notice, this list of conditions and the following disclaimer.*     * Redistributions in binary form must reproduce the above* copyright notice, this list of conditions and the following disclaimer* in the documentation and/or other materials provided with the* distribution.*     * Neither the name of Google Inc. nor the names of its* contributors may be used to endorse or promote products derived from* this software without specific prior written permission.** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS* "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT* LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR* A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT* OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,* SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,* DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY* THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT* (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE* OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.*/#ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_READER_H_
#define THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_READER_H_#include "base/timer/elapsed_timer.h"
#include "third_party/blink/renderer/bindings/core/v8/active_script_wrappable.h"
#include "third_party/blink/renderer/core/core_export.h"
#include "third_party/blink/renderer/core/dom/events/event_target.h"
#include "third_party/blink/renderer/core/execution_context/execution_context_lifecycle_observer.h"
#include "third_party/blink/renderer/core/fileapi/file_error.h"
#include "third_party/blink/renderer/core/fileapi/file_read_type.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_client.h"
#include "third_party/blink/renderer/core/fileapi/file_reader_loader.h"
#include "third_party/blink/renderer/core/probe/async_task_context.h"
#include "third_party/blink/renderer/platform/heap/garbage_collected.h"
#include "third_party/blink/renderer/platform/wtf/forward.h"namespace blink {class Blob;
class ExceptionState;
class ExecutionContext;
class V8UnionArrayBufferOrString;
enum class FileErrorCode;class CORE_EXPORT FileReader final : public EventTarget,public ActiveScriptWrappable<FileReader>,public ExecutionContextLifecycleObserver,public FileReaderAccumulator {DEFINE_WRAPPERTYPEINFO();public:static FileReader* Create(ExecutionContext*);explicit FileReader(ExecutionContext*);~FileReader() override;enum ReadyState { kEmpty = 0, kLoading = 1, kDone = 2 };void readAsArrayBuffer(Blob*, ExceptionState&);void readAsBinaryString(Blob*, ExceptionState&);void readAsText(Blob*, const String& encoding, ExceptionState&);void readAsText(Blob*, ExceptionState&);void readAsDataURL(Blob*, ExceptionState&);void abort();ReadyState getReadyState() const { return state_; }DOMException* error() { return error_.Get(); }V8UnionArrayBufferOrString* result() const;probe::AsyncTaskContext* async_task_context() { return &async_task_context_; }// ExecutionContextLifecycleObservervoid ContextDestroyed() override;// ScriptWrappablebool HasPendingActivity() const final;// EventTargetconst AtomicString& InterfaceName() const override;ExecutionContext* GetExecutionContext() const override {return ExecutionContextLifecycleObserver::GetExecutionContext();}// FileReaderClientFileErrorCode DidStartLoading() override;FileErrorCode DidReceiveData() override;void DidFinishLoading(FileReaderData contents) override;void DidFail(FileErrorCode) override;DEFINE_ATTRIBUTE_EVENT_LISTENER(loadstart, kLoadstart)DEFINE_ATTRIBUTE_EVENT_LISTENER(progress, kProgress)DEFINE_ATTRIBUTE_EVENT_LISTENER(load, kLoad)DEFINE_ATTRIBUTE_EVENT_LISTENER(abort, kAbort)DEFINE_ATTRIBUTE_EVENT_LISTENER(error, kError)DEFINE_ATTRIBUTE_EVENT_LISTENER(loadend, kLoadend)void Trace(Visitor*) const override;private:class ThrottlingController;void Terminate();void ReadInternal(Blob*, FileReadType, ExceptionState&);void FireEvent(const AtomicString& type);void ExecutePendingRead();ReadyState state_;// Internal loading state, which could differ from ReadyState as it's// for script-visible state while this one's for internal state.enum LoadingState {kLoadingStateNone,kLoadingStatePending,kLoadingStateLoading,kLoadingStateAborted};LoadingState loading_state_;bool still_firing_events_;String blob_type_;scoped_refptr<BlobDataHandle> blob_data_handle_;FileReadType read_type_;String encoding_;probe::AsyncTaskContext async_task_context_;Member<FileReaderLoader> loader_;Member<V8UnionArrayBufferOrString> result_ = nullptr;Member<DOMException> error_;absl::optional<base::ElapsedTimer> last_progress_notification_time_;
};}  // namespace blink#endif  // THIRD_PARTY_BLINK_RENDERER_CORE_FILEAPI_FILE_READER_H_

http://www.hkea.cn/news/679797/

相关文章:

  • 租车网站建设站长之家源码
  • 昌吉州回族自治州建设局网站地产渠道12种拓客方式
  • 北京市网站公司网络项目免费的资源网
  • 电子商务网站规划、电子商务网站建设站长工具 忘忧草
  • 凡科建网关键词优化公司哪家好
  • seo排名推广工具seo公司多少钱
  • 做视频网站赚钱怎么在百度上推广自己的公司信息
  • 网站建设凡科厦门网站建设平台
  • 互联网行业pest分析福州百度快速优化排名
  • 做网站的接私活犯法吗如何对网站进行推广
  • 身高差效果图网站优化师和运营区别
  • 谷歌wordpress建站搜索引擎算法
  • .net 购物网站开发源代码发布信息的免费平台
  • 自己做一网站大学生网络营销策划书
  • 关于网站建设的文章百度域名收录提交入口
  • 国人在线做网站推广图片大全
  • 郑州网站建设七彩科技四年级说新闻2023
  • 在什么网站上做自媒体seo整站怎么优化
  • 网站开发要注意安全性公司优化是什么意思
  • 河北邢台做移动网站开通网站需要多少钱
  • 天河网站建设多少钱淘宝关键词优化
  • 中型网站 收益关键词排名查询官网
  • 网站的弹窗是怎么做的谈谈对seo的理解
  • 广州网站制作费用宁波seo外包哪个品牌好
  • 河南高端网站建设广州网站优化页面
  • 企业可以备案几个网站南昌seo实用技巧
  • 网站用什么布局专业网站建设公司
  • 公司网站怎么做分录it培训机构学费一般多少
  • 如何将自己做的网页做成网站绍兴seo
  • 河南省住房与城乡建设厅网站首页怎么做属于自己的网站