jquery php批量上传,jQuery_jquery 批量上传图片实现代码,前台: upload.htm 复制代码 代码 - phpStudy...

本文主要是介绍jquery php批量上传,jQuery_jquery 批量上传图片实现代码,前台: upload.htm 复制代码 代码 - phpStudy...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

jquery 批量上传图片实现代码

前台: upload.htm

复制代码 代码如下:

upload
  • 确定上传

    取消

    增加

  • 图片1:

var TfileUploadNum = 1; //记录图片选择框个数

var Tnum = 1; //ajax上传图片时索引

//增加上传按钮

function TAddFileUpload() {

var idnum = TfileUploadNum + 1;

var str = "

";

str += "

图片" + idnum + ":
";

str += "

str += "

str += "

";

$("#loadimage").append(str);

TfileUploadNum += 1;

}

//开始上传

function TSubmitUploadImageFile() {

document.getElementById("SubUpload").disabled = true;

document.getElementById("CancelUpload").disabled = true;

document.getElementById("AddUpload").disabled = true;

setTimeout("TajaxFileUpload()", 1000); //此为关键代码

}

//Ajax上传方法

function TajaxFileUpload() {

if (Tnum < TfileUploadNum + 1) {

//准备提交处理

$("#uploadImgState" + Tnum).html("upfileloader.gif");

//开始提交

$.ajax({

type: "POST",

url: "Handler.ashx",

data: { upfile: $("#uploadImg" + Tnum).val()},

success: function(data, status) {

var stringArray = data.split("|");

//stringArray[0]    成功状态(1为成功,0为失败)

//stringArray[1]    上传成功的文件名

//stringArray[2]    消息提示

if (stringArray[0] == "1") {

//上传成功

$("#uploadImgState" + Tnum).html("Success.gif" + stringArray[1] + "--" + stringArray[2]);

}

else {

//上传出错

$("#uploadImgState" + Tnum).html("Error.gif" + stringArray[1] + "--" + stringArray[2]);

}

Tnum++;

setTimeout("TajaxFileUpload()", 1000);

}

});

}

else {

document.getElementById("SubUpload").disabled = false;

document.getElementById("CancelUpload").disabled = false;

document.getElementById("AddUpload").disabled = false;

}

}

处理程序Handler.ashx

复制代码 代码如下:

using System;

using System.Web;

using System.IO;

using System.Text;

using System.Net;

public class Handler : IHttpHandler

{

public void ProcessRequest(HttpContext context)

{

//源图片路径

string _fileNamePath = "";

try

{

_fileNamePath = context.Request.Form["upfile"];

string _savedFileResult = UpLoadFile(_fileNamePath); //开始上传

context.Response.Write(_savedFileResult);//返回上传结果

}

catch

{

context.Response.Write("0|error|文件路径错误");

}

}

///

/// 保存图片

///

///

///

private string UpLoadFile(string fileNamePath)

{

//图片格式

string fileNameExt = fileNamePath.Substring(fileNamePath.IndexOf('.')).ToLower();

if (!CheckFileExt(fileNameExt)) return "0|error|图片格式不正确!";

//保存路径

string toFilePath = "ProductUpload/";

//物理完整路径

string toFileFullPath = HttpContext.Current.Server.MapPath(toFilePath);

//检查是否有该路径 没有就创建

if (!Directory.Exists(toFileFullPath))

{

Directory.CreateDirectory(toFileFullPath);

}

//生成将要保存的随机文件名

string toFileName = GetFileName();

//将要保存的完整路径

string saveFile=toFileFullPath +toFileName + fileNameExt;

///创建WebClient实例

WebClient myWebClient = new WebClient();

//设定windows网络安全认证

myWebClient.Credentials = CredentialCache.DefaultCredentials;

//要上传的文件

FileStream fs = new FileStream(fileNamePath, FileMode.Open, FileAccess.Read);

BinaryReader r = new BinaryReader(fs);

//使用UploadFile方法可以用下面的格式

myWebClient.UploadFile(saveFile,fileNamePath);

return "1|"+toFileName+fileNameExt+"|保存成功.";

}

///

/// 检测图片类型

///

///

/// 正确返回True

private bool CheckFileExt(string _fileExt)

{

string[] allowExt = new string[] { ".gif", ".jpg", ".jpeg" };

for (int i = 0; i < allowExt.Length; i++)

{

if (allowExt[i] == _fileExt) { return true; }

}

return false;

}

///

/// 得到随机图片名

///

///

public static string GetFileName()

{

Random rd = new Random();

StringBuilder serial = new StringBuilder();

serial.Append(DateTime.Now.ToString("yyMMddHHmmssff"));

serial.Append(rd.Next(0, 9999).ToString());

return serial.ToString();

}

public bool IsReusable

{

get

{

return false;

}

}

}

CSS样式 upload.css

复制代码 代码如下:

body{font-size: 12pt;}

ul{list-style: none;}

li{margin: 0px;}

#loadimage{width: 860px;overflow: hidden;}

.imagelabel{ float: left; width: 60px; height: 25px;}

.imagepath{float: left; width: 400px; height: 25px; }

.loadinfo{float: left; width: 400px;height: 25px;}相关阅读:

dmysql自己封装的mysql库

Vista安全技巧 DIY系统安全检测

发表文章时自动保存到剪贴板

jquery实现前一个和后一个效果

怎样彻底关闭Vista安全中心没完没了的提示?

将JSP在内存生成的图片显示到页面

SQL Server 2000的安全配置

SQL Server 2008:传递表值参数

CSS中Float(浮动)相关技巧文章

使用第一个真正的 Ajax 服务器

Webjx推荐5个改善CSS编码的幻灯片教程

FREEBSD软件安装

Service Unavailable问题

Discuz论坛的WAP功能在手机上使用感爱

这篇关于jquery php批量上传,jQuery_jquery 批量上传图片实现代码,前台: upload.htm 复制代码 代码 - phpStudy...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/384322

相关文章

Vue3 的 shallowRef 和 shallowReactive:优化性能

大家对 Vue3 的 ref 和 reactive 都很熟悉,那么对 shallowRef 和 shallowReactive 是否了解呢? 在编程和数据结构中,“shallow”(浅层)通常指对数据结构的最外层进行操作,而不递归地处理其内部或嵌套的数据。这种处理方式关注的是数据结构的第一层属性或元素,而忽略更深层次的嵌套内容。 1. 浅层与深层的对比 1.1 浅层(Shallow) 定义

这15个Vue指令,让你的项目开发爽到爆

1. V-Hotkey 仓库地址: github.com/Dafrok/v-ho… Demo: 戳这里 https://dafrok.github.io/v-hotkey 安装: npm install --save v-hotkey 这个指令可以给组件绑定一个或多个快捷键。你想要通过按下 Escape 键后隐藏某个组件,按住 Control 和回车键再显示它吗?小菜一碟: <template

【 html+css 绚丽Loading 】000046 三才归元阵

前言:哈喽,大家好,今天给大家分享html+css 绚丽Loading!并提供具体代码帮助大家深入理解,彻底掌握!创作不易,如果能帮助到大家或者给大家一些灵感和启发,欢迎收藏+关注哦 💕 目录 📚一、效果📚二、信息💡1.简介:💡2.外观描述:💡3.使用方式:💡4.战斗方式:💡5.提升:💡6.传说: 📚三、源代码,上代码,可以直接复制使用🎥效果🗂️目录✍️

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

hdu1043(八数码问题,广搜 + hash(实现状态压缩) )

利用康拓展开将一个排列映射成一个自然数,然后就变成了普通的广搜题。 #include<iostream>#include<algorithm>#include<string>#include<stack>#include<queue>#include<map>#include<stdio.h>#include<stdlib.h>#include<ctype.h>#inclu

使用opencv优化图片(画面变清晰)

文章目录 需求影响照片清晰度的因素 实现降噪测试代码 锐化空间锐化Unsharp Masking频率域锐化对比测试 对比度增强常用算法对比测试 需求 对图像进行优化,使其看起来更清晰,同时保持尺寸不变,通常涉及到图像处理技术如锐化、降噪、对比度增强等 影响照片清晰度的因素 影响照片清晰度的因素有很多,主要可以从以下几个方面来分析 1. 拍摄设备 相机传感器:相机传

【C++】_list常用方法解析及模拟实现

相信自己的力量,只要对自己始终保持信心,尽自己最大努力去完成任何事,就算事情最终结果是失败了,努力了也不留遗憾。💓💓💓 目录   ✨说在前面 🍋知识点一:什么是list? •🌰1.list的定义 •🌰2.list的基本特性 •🌰3.常用接口介绍 🍋知识点二:list常用接口 •🌰1.默认成员函数 🔥构造函数(⭐) 🔥析构函数 •🌰2.list对象

【Prometheus】PromQL向量匹配实现不同标签的向量数据进行运算

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全栈,前后端开发,小程序开发,人工智能,js逆向,App逆向,网络系统安全,数据分析,Django,fastapi

活用c4d官方开发文档查询代码

当你问AI助手比如豆包,如何用python禁止掉xpresso标签时候,它会提示到 这时候要用到两个东西。https://developers.maxon.net/论坛搜索和开发文档 比如这里我就在官方找到正确的id描述 然后我就把参数标签换过来

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time