php+WebUploader image batch upload
1.webuploader
webuploader is mainly used to upload files and supports batch uploads and image previews. Preview is to generate base64 data from the image and use it directly in the tag, so the effect that can be achieved is that you can see the effect of uploading the image before actually uploading it. For more detailed introduction, you can go to the official website of webuploader. I always believe that reading the official website documents is the most direct way to learn. webuploader official website, by the way, webuploader is maintained by the Baidu Fex Team team.
2. Webuploader upload principle
1. PHP HTML form upload file
Before talking about this, you need to understand the file upload method of PHP. The upload is divided into two parts.
First create the
<form>
form through html, and add the file upload tag of
<input type='file' name='xxx'>
in the form, After clicking the upload submit button, you can upload the file to the server.
At the server side, the received uploaded file will be stored in the temporary folder specified by PHP. Use PHP's built-in function
move_uploaded_file()
. Move the temporary file to the target folder you want. This process can rename the file, size it to determine whether it meets the conditions, etc. Then the upload is complete.
For a complete PHP form upload case, you can read this article by w3school, so I won’t go into details here. PHP HTML form upload file
2. Webuploader upload principle
Using PHP HTML form upload can complete the file uploading work, but it has shortcomings,
When uploading a file, you must submit the entire page, so that the page will be refreshed
There is no way to preview the image when uploading it, so sometimes you have to wait until the wrong image is uploaded You won’t know until you refresh the page after the picture is actually uploaded.
webuploader solves these two problems. Webuploader uses ajax technology to submit the form. There is no need to submit the page when uploading. You can use the event listening mechanism to monitor the upload results and make decisions on the page. feedback, and can also do picture preview. Using webuploader to upload images only requires a few steps:
The front-end HTML page configures webuploader
The background server PHP page accepts images uploaded by webuploader. Then process it.
After processing the image in the background, the result of returning json data is sent to the front desk.
The front desk receives the json data and gives feedback.
Let me talk about it here. The background PHP receiving and processing images is basically the same as PHP HTML form upload.
3. Configuration and use of webuploader
You can view the official documents for all configuration parameters and usage methods. webuploader official website, there are some example cases in the webuploader github warehouse for reference. example
My running environment: php5.6 nginx macOS
The directory of my folder
index.php
upload_img.php
mywebupload.js
webuploader/
uploads/
1. Front-end HTML page configuration webupload
Mainly do the following steps:
Introduce the relevant js and css packages of webuploader
Create HTML tags
Create a js file and initialize webuploader. The following is the entire page code, The webuploader folder was moved entirely from github, and then I used jquery to enhance the page experience.
index.html
<!doctype html> <html> <head> <meta charset="UTF-8"> <meta http-equiv="Content-Type" content="text/html;charset=UTF-8"> <title>WebUploader演示</title> <link rel="stylesheet" type="text/css" href="webuploader/css/webuploader.css" /> <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/css/bootstrap.min.css" /> <link rel="shortcut icon" href="favicon.ico"> </head> <body> <div id="imgPicker">选择文件</div> <button class="btn btn-primary btn-upload">上传</button> <div></div> <div></div> <!--jquery 1.12--> <script src="https://cdn.jsdelivr.net/npm/jquery@1.12.4/dist/jquery.min.js"></script> <!--bootstrap核心js文件--> <script src="https://cdn.jsdelivr.net/npm/bootstrap@3.3.7/dist/js/bootstrap.min.js"></script> <!--webuploader js--> <!--<script type="text/javascript" src="static/jquery.js"></script>--> <script type="text/javascript" src="webuploader/dist/webuploader.min.js"></script> <script type="text/javascript" src="mywebupload.js"></script> </body> </html>
mywebupload.js
$(function(){ /* * 配置webuploader */ var imgUploader = WebUploader.create({ fileVal: 'img', // 相当于input标签的name属性,用于后台PHP识别接收上传文件的field swf: './webuploader/dist/Uploader.swf', // swf文件路径 server: './upload_img.php', // 文件接收服务端。 fileNumLimit: 10, // 上传文件的限制 pick: { id : '#imgPicker', // multiple : true // 是否支持多文件上传 }, // 只允许上传图片 accept: { title: 'Only Images', extensions: 'gif,jpg,jpeg,bmp,png', mimeTypes: 'image/jpg,image/jpeg,image/png,image/gif,image/bmp' }, auto: false, // 添加文件后是否自动上传上去,我设置了false,后面我会利用自己的上传按钮上传 resize: false // 不压缩image, 默认如果是jpeg,文件上传前会压缩一把再上传! }); /* * 设置上传按钮的单击事件 */ $('.btn-upload').click(function(){ imgUploader.upload(); // webuploader内置的upload函数,启动webuploader的上传 }); /* * 配置webuploader的事件监听 */ // 当图片文件被添加到上传队列中 imgUploader.on('fileQueued', function (file) { addImgThumb(file); }); // 生产图片预览 function addImgThumb(file){ imgUploader.makeThumb(file, function(error, ret){ if(!error){ img = '<img alt="" src="' + ret + '" />'; $('.img-thumb').append(img); }else{ console.log('making img error'); } },1,1); } imgUploader.on('uploadSuccess'), function(file, response){ // response 是后台upload_img.php返回的数据 if(response.success){ $('.result').append('<p>' + file.name + '上传成功</p>') }else{ $('.result').append('<p>' + response.message + '</p>') } }); })
2. The background PHP page processes uploaded files
There are two things to note here Point:
The file name of the php file processed in the background must be the same as when the webuploader is configured.
Remember to set the permissions of the uploaded folder. Linux can use chmod to modify the folder permissions, otherwise the upload will fail.
My handling method here is relatively simple. If you have any questions, please leave me a message.
upload_img.php
<?php $field = 'img'; // 对应webupload里设置的fileVal $savePath = './uploads/'; // 这里注意设置uploads文件夹的权限 $saveName = time() . uniqid() . '_' . $_FILES[$field]['name']; // 为文件重命名 $fullName = $savePath . $saveName; if (file_exists($fullName)) { $result = [ 'success'=>false, 'message'=>'相同文件名的文件已经存在' ]; }else{ move_uploaded_file($_FILES[$field]["tmp_name"], $fullName); $result = ['success'=>true, 'fullName'=>$fullName]; } return json_encode($result); // 将结果打包成json格式返回 ?>
The above is the entire content of webuploader. For more parameter configurations and events of webuploader, please refer to the official website of webuploader. I hope everyone will leave more messages to exchange comments and corrections.
For more PHP related technical articles, please visit the PHP Tutorial column to learn!
The above is the detailed content of php+WebUploader image batch upload. For more information, please follow other related articles on the PHP Chinese website!

Hot AI Tools

Undresser.AI Undress
AI-powered app for creating realistic nude photos

AI Clothes Remover
Online AI tool for removing clothes from photos.

Undress AI Tool
Undress images for free

Clothoff.io
AI clothes remover

AI Hentai Generator
Generate AI Hentai for free.

Hot Article

Hot Tools

Notepad++7.3.1
Easy-to-use and free code editor

SublimeText3 Chinese version
Chinese version, very easy to use

Zend Studio 13.0.1
Powerful PHP integrated development environment

Dreamweaver CS6
Visual web development tools

SublimeText3 Mac version
God-level code editing software (SublimeText3)

Hot Topics



PHP 8.4 brings several new features, security improvements, and performance improvements with healthy amounts of feature deprecations and removals. This guide explains how to install PHP 8.4 or upgrade to PHP 8.4 on Ubuntu, Debian, or their derivati

Visual Studio Code, also known as VS Code, is a free source code editor — or integrated development environment (IDE) — available for all major operating systems. With a large collection of extensions for many programming languages, VS Code can be c

This tutorial demonstrates how to efficiently process XML documents using PHP. XML (eXtensible Markup Language) is a versatile text-based markup language designed for both human readability and machine parsing. It's commonly used for data storage an

If you are an experienced PHP developer, you might have the feeling that you’ve been there and done that already.You have developed a significant number of applications, debugged millions of lines of code, and tweaked a bunch of scripts to achieve op

JWT is an open standard based on JSON, used to securely transmit information between parties, mainly for identity authentication and information exchange. 1. JWT consists of three parts: Header, Payload and Signature. 2. The working principle of JWT includes three steps: generating JWT, verifying JWT and parsing Payload. 3. When using JWT for authentication in PHP, JWT can be generated and verified, and user role and permission information can be included in advanced usage. 4. Common errors include signature verification failure, token expiration, and payload oversized. Debugging skills include using debugging tools and logging. 5. Performance optimization and best practices include using appropriate signature algorithms, setting validity periods reasonably,

A string is a sequence of characters, including letters, numbers, and symbols. This tutorial will learn how to calculate the number of vowels in a given string in PHP using different methods. The vowels in English are a, e, i, o, u, and they can be uppercase or lowercase. What is a vowel? Vowels are alphabetic characters that represent a specific pronunciation. There are five vowels in English, including uppercase and lowercase: a, e, i, o, u Example 1 Input: String = "Tutorialspoint" Output: 6 explain The vowels in the string "Tutorialspoint" are u, o, i, a, o, i. There are 6 yuan in total

Static binding (static::) implements late static binding (LSB) in PHP, allowing calling classes to be referenced in static contexts rather than defining classes. 1) The parsing process is performed at runtime, 2) Look up the call class in the inheritance relationship, 3) It may bring performance overhead.

What are the magic methods of PHP? PHP's magic methods include: 1.\_\_construct, used to initialize objects; 2.\_\_destruct, used to clean up resources; 3.\_\_call, handle non-existent method calls; 4.\_\_get, implement dynamic attribute access; 5.\_\_set, implement dynamic attribute settings. These methods are automatically called in certain situations, improving code flexibility and efficiency.
