Maison interface Web js tutoriel jQuery AjaxUpload télécharger l'image code_jquery

jQuery AjaxUpload télécharger l'image code_jquery

May 16, 2016 pm 03:16 PM

Cette fois, AJAXUPLOAD est utilisé comme plug-in de téléchargement sans balais du client de téléchargement. Sa dernière version est la 3.9. L'adresse officielle : http://valums.com/ajax-upload/
.

Introduisez jquery.min.1.4.2.js et ajaxupload.js
dans la page

<script src="Scripts/jquery-1.4.2.min.js" type="text/javascript"></script>
<script src="Scripts/ajaxupload3.9.js" type="text/javascript"></script>
Copier après la connexion

Code HTML :

<style type="text/css">
#txtFileName {
width: 300px;
}
.btnsubmit{border-bottom: #cc4f00 1px solid; border-left: #ff9000 1px solid;border-top: #ff9000 1px solid; border-right: #cc4f00 1px solid;text-align: center; padding: 2px 10px; line-height: 16px; background: #e36b0f; height: 24px; color: #fff; font-size: 12px; cursor: pointer;}
</style>
上传图片:<input type="text" id="txtFileName" /><div id="btnUp" style="width:300px;" class=btnsubmit >浏览</div>
<div id="imglist"></div>

Copier après la connexion

code js :

<script type="text/javascript">
$(function () {
var button = $('#btnUp'), interval;
new AjaxUpload(button, {
//action: 'upload-test.php',文件上传服务器端执行的地址
action: '/handler/AjaxuploadHandler.ashx',
name: 'myfile',
onSubmit: function (file, ext) {
if (!(ext && /^(jpg|jpeg|JPG|JPEG)$/.test(ext))) {
alert('图片格式不正确,请选择 jpg 格式的文件!', '系统提示');
return false;
}
// change button text, when user selects file
button.text('上传中');
// If you want to allow uploading only 1 file at time,
// you can disable upload button
this.disable();
// Uploding -> Uploading. -> Uploading...
interval = window.setInterval(function () {
var text = button.text();
if (text.length < 10) {
button.text(text + '|');
} else {
button.text('上传中');
}
}, 200);
},
onComplete: function (file, response) {
//file 本地文件名称,response 服务器端传回的信息
button.text('上传图片(只允许上传JPG格式的图片,大小不得大于150K)');
window.clearInterval(interval);
// enable upload button
this.enable();
var k = response.replace("<PRE>", "").replace("
", ""); if (k == '-1') { alert('您上传的文件太大啦!请不要超过150K'); } else { alert("服务器端传回的串:"+k); alert("本地文件名称:"+file); $("#txtFileName").val(k); $("").appendTo($('#imglist')).attr("src", k); } } }); });
Copier après la connexion

Code ajaxuploadhandler.ashx côté serveur

public void ProcessRequest(HttpContext context)
{
context.Response.ContentType = "text/plain";
HttpPostedFile postedFile = context.Request.Files[0];
string savePath = "/upload/images/";
int filelength = postedFile.ContentLength;
int fileSize = 163600; //150K
string fileName = "-1"; //返回的上传后的文件名
if (filelength <= fileSize)
{
byte[] buffer = new byte[filelength];
postedFile.InputStream.Read(buffer, 0, filelength);
fileName = UploadImage(buffer, savePath, "jpg");
}
context.Response.Write(fileName);
}
public static string UploadImage(byte[] imgBuffer, string uploadpath, string ext)
{
try
{
System.IO.MemoryStream m = new MemoryStream(imgBuffer);
if (!Directory.Exists(HttpContext.Current.Server.MapPath(uploadpath)))
Directory.CreateDirectory(HttpContext.Current.Server.MapPath(uploadpath));
string imgname = CreateIDCode() + "." + ext;
string _path = HttpContext.Current.Server.MapPath(uploadpath) + imgname;
Image img = Image.FromStream(m);
if (ext == "jpg")
img.Save(_path, System.Drawing.Imaging.ImageFormat.Jpeg);
else
img.Save(_path, System.Drawing.Imaging.ImageFormat.Gif);
m.Close();
return uploadpath + imgname;
}
catch (Exception ex)
{
return ex.Message;
}
}
public static string CreateIDCode()
{
DateTime Time1 = DateTime.Now.ToUniversalTime();
DateTime Time2 = Convert.ToDateTime("1970-01-01");
TimeSpan span = Time1 - Time2; //span就是两个日期之间的差额 
string t = span.TotalMilliseconds.ToString("0");
return t;
}
Copier après la connexion

Dans le développement de sites Web PHP, la fonction de téléchargement de fichiers est souvent utilisée. J'ai déjà présenté comment utiliser PHP pour implémenter la fonction de téléchargement de fichiers. Avec le développement de la technologie WEB, l'expérience utilisateur est devenue la clé pour mesurer le succès d'un site Web. Aujourd'hui, je vais partager avec vous un exemple d'utilisation de Jquery pour implémenter la fonction de téléchargement de fichiers Ajax en PHP. est utilisé, qui peut implémenter une fonction de téléchargement de fichiers uniques et multiples.

AjaxUpload

Lorsque le plug-in Jquery AjaxUpload implémente la fonction de téléchargement de fichiers, il n'est pas nécessaire de créer un formulaire. Il peut réaliser le téléchargement de fichiers en mode Ajax. Bien sûr, vous pouvez également créer un formulaire selon vos besoins.

Préparation

1. Téléchargez le package de développement Jquery et le plug-in de téléchargement de fichiers AjaxUpload.

2. Créez uploadfile.html et introduisez le package de développement Jquery et le plug-in AjaxUpload

<script src="js/jquery-1.3.js"></script>
<script src="js/ajaxupload.3.5.js"></script> 
Copier après la connexion

3. Selon les besoins du plug-in Jquery AjaxUpload, créez un DIV qui déclenche la fonction de téléchargement de fichiers Ajax

<ul> 
<li id="example"> 
<div id="upload_button">文件上传</div>
<p>已上传的文件列表:</p> 
<ol class="files"></ol>
</ul> 
Copier après la connexion

Remarque : à partir du code ci-dessous, nous pouvons voir que le plug-in Jquery AjaxUpload déclenche la fonction de téléchargement de fichiers basée sur le DIV upload_button.

Code JS frontal

J'ai défini un commutateur dans le code pour qu'il corresponde au type de fichier téléchargé selon les besoins, et j'ai également défini s'il fallait télécharger un seul fichier ou plusieurs fichiers en mode Ajax.

$(document).ready(function(){
var button = $('#upload_button'), interval;
var fileType = "all",fileNum = "one"; 
new AjaxUpload(button,{
action: 'do/uploadfile.php',
/*data:{
'buttoninfo':button.text()
},*/
name: 'userfile',
onSubmit : function(file, ext){
if(fileType == "pic")
{
if (ext && /^(jpg|png|jpeg|gif)$/.test(ext)){
this.setData({
'info': '文件类型为图片'
});
} else {
$('<li></li>').appendTo('#example .files').text('非图片类型文件,请重传');
return false; 
}
}
button.text('文件上传中');
if(fileNum == 'one')
this.disable();
interval = window.setInterval(function(){
var text = button.text();
if (text.length < 14){
button.text(text + '.'); 
} else {
button.text('文件上传中'); 
}
}, 200);
},
onComplete: function(file, response){
if(response != "success")
alert(response);
button.text('文件上传');
window.clearInterval(interval);
this.enable();
if(response == "success");
$('<li></li>').appendTo('#example .files').text(file); 
}
});
}); 
Copier après la connexion

Remarque :

Ligne 1 : fonction $(document).ready(), une fonction dans Jquery, similaire à window.load Utilisez cette fonction pour appeler la fonction liée immédiatement lorsque le DOM est chargé et prêt à être lu et manipulé.

Ligne 3 : Les paramètres fileType et fileNum représentent le type et le nombre de fichiers téléchargés. La valeur par défaut est que tous les types de fichiers peuvent être téléchargés. Un seul fichier peut être téléchargé en même temps. fichiers ou plusieurs fichiers en même temps, vous pouvez Les valeurs de ces deux variables deviennent pic et plus.

Lignes 6 ~ 8 : POST des données sur le serveur. Vous pouvez définir des valeurs statiques ou obtenir des valeurs dynamiques via la fonction d'opération DOM de Jquery, comme la valeur d'INPUT dans le formulaire, etc.

Ligne 9 : Équivalent au frontend

<input type="file" name="userfile"> 
Copier après la connexion

$_FILES['userfile'] côté serveur

Lignes 10~36 : Fonction déclenchée avant le téléchargement du fichier.

Lignes 11~21 : Fonction de filtrage du type de fichier image, la fonction Jquery setData est utilisée pour définir la valeur du POST sur le serveur.

Lignes 25 ~ 26 : définissez s'il faut télécharger un seul fichier ou plusieurs fichiers en même temps. Si un seul fichier est téléchargé, le bouton de déclenchement sera désactivé. Si vous souhaitez transférer plusieurs fichiers supplémentaires, veuillez définir la valeur de MAXSIZE dans le programme de téléchargement de fichiers PHP côté serveur. Bien entendu, la limite de taille des fichiers téléchargés est également liée aux paramètres du fichier PHP.INI.

Lignes 28 à 35 : pendant le processus de téléchargement de fichier, le texte du bouton est mis à jour dynamiquement toutes les 200 millisecondes, obtenant l'effet d'invites dynamiques. La fonction window.setInterval est utilisée pour exécuter la fonction intégrée à chaque heure spécifiée. L'unité de temps d'interaction est la milliseconde.

Lignes 37 à 49 : La fonction est déclenchée une fois la fonction de téléchargement de fichier terminée. Si le serveur signale une erreur en fonction de la valeur de retour, le frontal affiche le message d'erreur via ALERTE.

Code de téléchargement de fichiers PHP côté serveur

Il est généralement adapté du didacticiel d'exemple de code de fonction de téléchargement de fichier PHP présenté précédemment. Les paramètres de taille de téléchargement de fichier, les messages d'erreur et autres instructions impliqués ont été expliqués en détail dans cet article.

$upload_dir = '../file/';
$file_path = $upload_dir . $_FILES['userfile']['name'];
$MAX_SIZE = 20000000;
echo $_POST['buttoninfo'];
if(!is_dir($upload_dir))
{
if(!mkdir($upload_dir))
echo "文件上传目录不存在并且无法创建文件上传目录";
if(!chmod($upload_dir,0755))
echo "文件上传目录的权限无法设定为可读可写";
}
if($_FILES['userfile']['size']>$MAX_SIZE)
echo "上传的文件大小超过了规定大小";
if($_FILES['userfile']['size'] == 0)
echo "请选择上传的文件";
if(!move_uploaded_file( $_FILES['userfile']['tmp_name'], $file_path))
echo "复制文件失败,请重新上传"; 
switch($_FILES['userfile']['error'])
{
case 0:
echo "success" ;
break;
case 1:
echo "上传的文件超过了 php.ini 中 upload_max_filesize 选项限制的值";
break;
case 2:
echo "上传文件的大小超过了 HTML 表单中 MAX_FILE_SIZE 选项指定的值";
break;
case 3:
echo "文件只有部分被上传";
break;
case 4:
echo "没有文件被上传";
break;
}
Copier après la connexion

Résumé

Fondamentalement, le prototype de la fonction de déclenchement de téléchargement de fichiers Ajax frontal et de la fonction de téléchargement de fichiers PHP côté serveur a été introduit. Vous pouvez compléter les codes front-end et back-end selon vos propres besoins, ou vous-même. peut séparer certaines fonctions, telles que le type de fichier, la fonction de téléchargement de fichiers uniques ou multiples. En général, il est relativement simple d'appliquer le plug-in Jquery AjaxUpload pour implémenter la fonction de téléchargement de fichiers.

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Que dois-je faire si je rencontre l'impression de code brouillé pour les reçus en papier thermique frontal? Apr 04, 2025 pm 02:42 PM

Des questions et des solutions fréquemment posées pour l'impression de billets thermiques frontaux pour le développement frontal, l'impression de billets est une exigence commune. Cependant, de nombreux développeurs mettent en œuvre ...

Qui est payé plus de python ou de javascript? Qui est payé plus de python ou de javascript? Apr 04, 2025 am 12:09 AM

Il n'y a pas de salaire absolu pour les développeurs Python et JavaScript, selon les compétences et les besoins de l'industrie. 1. Python peut être davantage payé en science des données et en apprentissage automatique. 2. JavaScript a une grande demande dans le développement frontal et complet, et son salaire est également considérable. 3. Les facteurs d'influence comprennent l'expérience, la localisation géographique, la taille de l'entreprise et les compétences spécifiques.

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Comment fusionner les éléments du tableau avec le même ID dans un seul objet en utilisant JavaScript? Apr 04, 2025 pm 05:09 PM

Comment fusionner les éléments du tableau avec le même ID dans un seul objet en JavaScript? Lors du traitement des données, nous rencontrons souvent la nécessité d'avoir le même ID ...

Démystifier javascript: ce qu'il fait et pourquoi c'est important Démystifier javascript: ce qu'il fait et pourquoi c'est important Apr 09, 2025 am 12:07 AM

JavaScript est la pierre angulaire du développement Web moderne, et ses principales fonctions incluent la programmation axée sur les événements, la génération de contenu dynamique et la programmation asynchrone. 1) La programmation axée sur les événements permet aux pages Web de changer dynamiquement en fonction des opérations utilisateur. 2) La génération de contenu dynamique permet d'ajuster le contenu de la page en fonction des conditions. 3) La programmation asynchrone garantit que l'interface utilisateur n'est pas bloquée. JavaScript est largement utilisé dans l'interaction Web, les applications à une page et le développement côté serveur, améliorant considérablement la flexibilité de l'expérience utilisateur et du développement multiplateforme.

La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? La différence dans Console.Log de sortie Résultat: Pourquoi les deux appels sont-ils différents? Apr 04, 2025 pm 05:12 PM

Discussion approfondie des causes profondes de la différence de sortie Console.log. Cet article analysera les différences dans les résultats de sortie de la fonction Console.log dans un morceau de code et expliquera les raisons derrière. � ...

Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido?
ou:
Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Comment réaliser des effets de défilement de parallaxe et d'animation des éléments, comme le site officiel de Shiseido? ou: Comment pouvons-nous réaliser l'effet d'animation accompagné d'un défilement de page comme le site officiel de Shiseido? Apr 04, 2025 pm 05:36 PM

La discussion sur la réalisation des effets de défilement de parallaxe et d'animation des éléments dans cet article explorera comment réaliser le site officiel de Shiseido (https://www.shiseido.co.jp/sb/wonderland/) ...

TypeScript pour les débutants, partie 2: Types de données de base TypeScript pour les débutants, partie 2: Types de données de base Mar 19, 2025 am 09:10 AM

Une fois que vous avez maîtrisé le didacticiel TypeScript de niveau d'entrée, vous devriez être en mesure d'écrire votre propre code dans un IDE qui prend en charge TypeScript et de le compiler en JavaScript. Ce tutoriel plongera dans divers types de données dans TypeScript. JavaScript a sept types de données: null, non défini, booléen, numéro, chaîne, symbole (introduit par ES6) et objet. TypeScript définit plus de types sur cette base, et ce tutoriel les couvrira tous en détail. Type de données nuls Comme javascript, null en typeScript

PowerPoint peut-il exécuter JavaScript? PowerPoint peut-il exécuter JavaScript? Apr 01, 2025 pm 05:17 PM

JavaScript peut être exécuté dans PowerPoint et peut être implémenté en appelant des fichiers JavaScript externes ou en intégrant des fichiers HTML via VBA. 1. Pour utiliser VBA pour appeler les fichiers JavaScript, vous devez activer les macros et avoir des connaissances en programmation VBA. 2. ENCHED des fichiers HTML contenant JavaScript, qui sont simples et faciles à utiliser mais sont soumis à des restrictions de sécurité. Les avantages incluent les fonctions étendues et la flexibilité, tandis que les inconvénients impliquent la sécurité, la compatibilité et la complexité. En pratique, l'attention doit être accordée à la sécurité, à la compatibilité, aux performances et à l'expérience utilisateur.

See all articles