search
HomeWeb Front-endJS TutorialUse JS plupload to directly upload images in batches to Youpai Cloud_javascript skills

Forums or post bars often need to share a lot of pictures. The worse way to upload pictures is to upload them to a central server, and then the central server forwards them to the static picture server. This article will introduce how to use plupload to optimize the upload process and directly upload images in batches to Youpai Cloud, bypassing the server. This article will focus on the following key points:

Copy code The code is as follows:

plupload library
Local compression of images
Multiple selection of pictures
Bypass the server and directly upload pictures in batches to Youpai Cloud
Use Youpai’s HTTP FORM API
plupload configuration

plupload library

plupload is a very rich image upload plug-in. Batch uploads can be supported through Flash/Silverligh/html4 for lower version browsers, while for higher version browsers, the HTML5 interface will be used first for uploading. All these determinations are automatic, and it can be said to be very convenient to use! Secondly, plupload also supports functions such as compressing images on the client and directly Drag&Drop for uploading. For more information, you can go to its official website.

Here we only use its core API and only need to introduce a file.

Copy code The code is as follows:


The official core API example is very simple, you can directly go to http://www.plupload.com/examples/core to view it. There is no difficulty in understanding the core API. If you need help, you can ask me questions later in this article.

Local compression of images

Generally, the quality of pictures viewed on the web is not high. I remember when I was learning PS in high school, the teacher said that the resolution of online pictures should be set to 72, and for printed pictures, it should be set to 300. Therefore, when a user uploads a large photo, a better approach is for the user's client to compress the image locally and upload the compressed smaller image, which does not affect the browsing effect and can also speed up the upload. speed, reducing the burden on the server.

The local compression function of images is supported in plupload. Just pass in a resize parameter when initializing it. Among them, the width and height can be set according to the actual situation, and quality is a more important parameter. As the name suggests, the smaller the value is set, the smaller the picture will be, but the display quality will be worse. You need to weigh this yourself. .

Copy code The code is as follows:

{
"resize": {
"width": 200,
"height": 200,
"quality": 70
}
}

Multiple selection of pictures

A prerequisite for batch uploading images is the ability to select multiple images. Multi-selection files are a standard feature of HTML5. We can enable multi-selection mode in the following ways:

Copy code The code is as follows:


Select images:


According to the section Multiple File selection in the browser support of a very excellent jquery plug-in jQuery-File-Upload, IE has only just begun to support this HTML5 feature until IE10, so we have to use Flash The magical power to support multiple image selection in lower version browsers. Fortunately, plupload has already done this for us, and this switch is enabled by default. If you feel you don't need to use multi-selection images, you can set multi_selection: false to turn off this feature.

Bypass the server and directly upload pictures in batches to Youpai Cloud

Youpaiyun provides HTTP FORM API. Through this interface, we can directly initiate a request to upload images from the browser without having to go through our own server, which greatly reduces the overhead.

Use Youpai’s HTTP FORM API

To use this interface, you need to send a form to Youpaiyun. This form contains the files you want to upload, and also needs to include policy and signature. Policy is used to set upload request-related parameters, such as storage path, file type, preprocessing results, etc. In addition, it also includes the upload request grant time, etc. Signature is used for security verification.

For the convenience of demonstration, javascript is used directly to generate Policy and Signature. But in actual use, for security reasons, please complete this process on the server side. The following code has been slightly modified based on the official demo, mainly using the official test account. For the specific generation method of these two parameters, please refer to the official documentation: http://docs.upyun. com/api/form_api/.

Copy code The code is as follows:

var options = {
'bucket': 'demonstration',
'save-key': '/test/filename.txt',
'expiration': Math.floor(new Date().getTime() / 1000) 86400
};
// View more parameters: http://docs.upyun.com/api/form_api/#Form API interface introduction
var policy = window.btoa(JSON.stringify(options));
// Get form API from UPYUN user management background
var form_api_secret = '1 JY2ZqD5UVfw6hQ8EesYQO50Wo=';
// Calculate signature
var signature = md5(policy '&' form_api_secret);

plupload configuration

How to make plupload work with Youpaiyun's HTTP FORM API really gives me a headache. While looking at the documentation of plupload, I accidentally discovered that the link to Upload to Amazon S3 attracted me. The full name of Amazon S3 is Amazon Simple Storage Service. The cloud storage service it provides is more or less similar to Youpaiyun.

So based on the introduction of browser-side configuration in this article, I figured out the configuration needed to upload to Youpaiyun. In fact, it is very simple to say, the main thing is to configure the two parameters of url and multipart_params. In the following example, options.bucket, policy, and signature directly use the values ​​calculated in the previous section.

Copy code The code is as follows:

var uploader = new plupload.Uploader({
...
url: 'http://v0.api.upyun.com/' options.bucket,
Multipart_params: {
          'Filename': '${filename}', // adding this to keep consistency across the runtimes
         'Content-Type': '',
        'policy': policy,
        'signature': signature,
},
...
});

Summary

In this way, I finally achieved the ability to bypass the server through plupload and upload images in batches to Youpai Cloud. plupload is really a very powerful library, but it does require a fee for commercial use. Please go to its official website to learn more!

Isn’t it very simple? The main reason is that the idea is very good and worth learning. If you have any questions, please leave a message with me and we can make progress together

Statement
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn
JavaScript Engines: Comparing ImplementationsJavaScript Engines: Comparing ImplementationsApr 13, 2025 am 12:05 AM

Different JavaScript engines have different effects when parsing and executing JavaScript code, because the implementation principles and optimization strategies of each engine differ. 1. Lexical analysis: convert source code into lexical unit. 2. Grammar analysis: Generate an abstract syntax tree. 3. Optimization and compilation: Generate machine code through the JIT compiler. 4. Execute: Run the machine code. V8 engine optimizes through instant compilation and hidden class, SpiderMonkey uses a type inference system, resulting in different performance performance on the same code.

Beyond the Browser: JavaScript in the Real WorldBeyond the Browser: JavaScript in the Real WorldApr 12, 2025 am 12:06 AM

JavaScript's applications in the real world include server-side programming, mobile application development and Internet of Things control: 1. Server-side programming is realized through Node.js, suitable for high concurrent request processing. 2. Mobile application development is carried out through ReactNative and supports cross-platform deployment. 3. Used for IoT device control through Johnny-Five library, suitable for hardware interaction.

Building a Multi-Tenant SaaS Application with Next.js (Backend Integration)Building a Multi-Tenant SaaS Application with Next.js (Backend Integration)Apr 11, 2025 am 08:23 AM

I built a functional multi-tenant SaaS application (an EdTech app) with your everyday tech tool and you can do the same. First, what’s a multi-tenant SaaS application? Multi-tenant SaaS applications let you serve multiple customers from a sing

How to Build a Multi-Tenant SaaS Application with Next.js (Frontend Integration)How to Build a Multi-Tenant SaaS Application with Next.js (Frontend Integration)Apr 11, 2025 am 08:22 AM

This article demonstrates frontend integration with a backend secured by Permit, building a functional EdTech SaaS application using Next.js. The frontend fetches user permissions to control UI visibility and ensures API requests adhere to role-base

JavaScript: Exploring the Versatility of a Web LanguageJavaScript: Exploring the Versatility of a Web LanguageApr 11, 2025 am 12:01 AM

JavaScript is the core language of modern web development and is widely used for its diversity and flexibility. 1) Front-end development: build dynamic web pages and single-page applications through DOM operations and modern frameworks (such as React, Vue.js, Angular). 2) Server-side development: Node.js uses a non-blocking I/O model to handle high concurrency and real-time applications. 3) Mobile and desktop application development: cross-platform development is realized through ReactNative and Electron to improve development efficiency.

The Evolution of JavaScript: Current Trends and Future ProspectsThe Evolution of JavaScript: Current Trends and Future ProspectsApr 10, 2025 am 09:33 AM

The latest trends in JavaScript include the rise of TypeScript, the popularity of modern frameworks and libraries, and the application of WebAssembly. Future prospects cover more powerful type systems, the development of server-side JavaScript, the expansion of artificial intelligence and machine learning, and the potential of IoT and edge computing.

Demystifying JavaScript: What It Does and Why It MattersDemystifying JavaScript: What It Does and Why It MattersApr 09, 2025 am 12:07 AM

JavaScript is the cornerstone of modern web development, and its main functions include event-driven programming, dynamic content generation and asynchronous programming. 1) Event-driven programming allows web pages to change dynamically according to user operations. 2) Dynamic content generation allows page content to be adjusted according to conditions. 3) Asynchronous programming ensures that the user interface is not blocked. JavaScript is widely used in web interaction, single-page application and server-side development, greatly improving the flexibility of user experience and cross-platform development.

Is Python or JavaScript better?Is Python or JavaScript better?Apr 06, 2025 am 12:14 AM

Python is more suitable for data science and machine learning, while JavaScript is more suitable for front-end and full-stack development. 1. Python is known for its concise syntax and rich library ecosystem, and is suitable for data analysis and web development. 2. JavaScript is the core of front-end development. Node.js supports server-side programming and is suitable for full-stack development.

See all articles

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks agoBy尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks agoBy尊渡假赌尊渡假赌尊渡假赌

Hot Tools

MinGW - Minimalist GNU for Windows

MinGW - Minimalist GNU for Windows

This project is in the process of being migrated to osdn.net/projects/mingw, you can continue to follow us there. MinGW: A native Windows port of the GNU Compiler Collection (GCC), freely distributable import libraries and header files for building native Windows applications; includes extensions to the MSVC runtime to support C99 functionality. All MinGW software can run on 64-bit Windows platforms.

DVWA

DVWA

Damn Vulnerable Web App (DVWA) is a PHP/MySQL web application that is very vulnerable. Its main goals are to be an aid for security professionals to test their skills and tools in a legal environment, to help web developers better understand the process of securing web applications, and to help teachers/students teach/learn in a classroom environment Web application security. The goal of DVWA is to practice some of the most common web vulnerabilities through a simple and straightforward interface, with varying degrees of difficulty. Please note that this software

EditPlus Chinese cracked version

EditPlus Chinese cracked version

Small size, syntax highlighting, does not support code prompt function

SublimeText3 Linux new version

SublimeText3 Linux new version

SublimeText3 Linux latest version

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use