前台代码:
/*修改头像*/
//上传
function _sc() {
$(".ckfile").html("").css("color", "#535353");
$("#_userImgPath").val("");
var str = $("#file").val();
if ($.trim(str) == "") {
$(".ckfile").html("请选择文件。").css("color", "red");
return false;
}
else {
var postfix = str.substring(str.lastIndexOf(".") + 1).toUpperCase();
if (postfix == "JPG" || postfix == "JPEG" || postfix == "PNG" || postfix == "GIF" || postfix == "BMP") {
$('#showimg').attr('src', 'Images/loading.gif').attr("title", "上传中,请稍后…");
var path = "Upload/UserImg";
$.ajaxFileUpload({
url: '/Upload.
aspx?path=Upload|UserImg&shape=100*100',
secureuri: false,
fileElementId: 'file',
dataType: 'text',
success: function (msg) {
if (msg.lastIndexOf(path) == -1) {
$(".ckfile").
html(msg).css("color", "red");
}
else {
$('#showimg').attr('src', msg).attr("title", "我的头像");
$("#_userImgPath").val(msg);
}
}
});
} else {
$(".ckfile").html("文件格式错误。").css("color", "red");
return false;
}
}
}
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using SS.Upload;
using WFC.Fenxiao;
namespace wanfangcheng
{
public partial class Upload : BasePage
{
//文件大小 1024 kb
private long size = 1024;
//文件类型
private string type = ".jpg|.jpeg|.png|.gif|.bmp";
//保存名称
string name = "";
//保存路径
private string path = @"Upload/UserImg";
//保存大小
private string shape = "100*100";
protected void Page_Load(object sender, EventArgs e)
{
HttpFileCollection files = Request.Files;
if (files != null && files.Count > 0)
{
name = BaseRole.Instance.UserId.ToString();
if (Request.QueryString["size"] != null)
{
size = Convert.ToInt32(Request.QueryString["size"]);
}
if (Request.QueryString["path"] != null)
{
path = Request.QueryString["path"].ToString().Trim().Replace('|', '/');
}
if (Request.QueryString["name"] != null)
{
name = Request.QueryString["name"].ToString().Trim();
}
if (Request.QueryString["shape"] != null)
{
shape = Request.QueryString["shape"].ToString().Trim();
}
uploadMethod(files);
}
}
/// <summary>
/// 上传图片
/// </summary>
/// <param name="hc"></param>
public void uploadMethod(HttpFileCollection hc)
{
HttpPostedFile _file = hc[0];
//文件大小
long _size = _file.ContentLength;
if (_size <= 0)
{
Response.Write("文件错误。");
Response.End();
return;
}
if (size * 1024 < _size)
{
Response.Write("文件过大,最大限制为" + size + "KB。");
Response.End();
return;
}
//文件名
string _name = _file.FileName;
//文件格式
string _tp = System.IO.Path.GetExtension(_name).ToLower();
if (type.IndexOf(_tp) == -1)
{
Response.Write("文件格式错误。");
Response.End();
return;
}
//保存路径
string _path = HttpContext.Current.Server.MapPath(path) + @"/" + name + _tp;
try
{
int w = Convert.ToInt32(shape.Split('*')[0]);
int h = Convert.ToInt32(shape.Split('*')[1]);
ImageHelper.CutForCustom(_file, _path, w, h, 50);
Response.Write(path + @"/" + name + _tp);
}
catch (Exception)
{
Response.Write("哎呦,出错了。");
Response.End();
}
}
}
}
- 使用AjaxFileUpload.js实现文件异步上�
ajax是无法提交文件的,所以在上传图片并预览的时候,我们常常使用Ifame的方法实现看似异步的效果.可是这样总不是非常方便的,AjaxFilleUpload.js对上面的方法进行了一个包装,使得我们 ...
- js 文件异步上传 显示进度条 显示上传速度 预览文件
通常文件异步提交有几个关键 1.支持拖拽放入文件.2.限制文件格式.3.预览图片文件.4.上传进度,速度等,上传途中取消上传.5.数据与文件同时上传 现在开始笔记: 需要一个最基础的元素<inp ...
- SpringMVC + AJAX 实现多文件异步上传
转自:https://www.jianshu.com/p/f3987f0f471f 今天,我就这个问题来写一篇如何用 SpringMVC + AJAX 实现的多文件异步上传功能.基本的代码还是沿用上篇 ...
- HTML5实现图片文件异步上传
原文:HTML5实现图片文件异步上传 利用HTML5的新特点做文件异步上传非常简单方便,本文主要展示JS部分,html结构.下面的代码并未使用第三发库,如果有参照,请注意一些未展现出来的代码片段.我这 ...
- 文件的上传(表单上传和ajax文件异步上传)
项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举的主要对于小文件上传的处理! 资源下载: 一. ...
- 普通文件的上传(表单上传和ajax文件异步上传)
一.表单上传: html客户端部分: <form action="upload.ashx" method="post" enctype="mul ...
- MVC文件上传04-使用客户端jQuery-File-Upload插件和服务端Backload组件实现多文件异步上传
本篇使用客户端jQuery-File-Upload插件和服务端Badkload组件实现多文件异步上传.MVC文件上传相关兄弟篇: MVC文件上传01-使用jquery异步上传并客户端验证类型和大小 ...
- 文件的上传(1)(表单上传和ajax文件异步上传)
文件的上传(表单上传和ajax文件异步上传) 项目中用户上传总是少不了的,下面就主要的列举一下表单上传和ajax上传!注意: context.Request.Files不适合对大文件进行操作,下面列举 ...
- 小程序使用 Promise.all 完成文件异步上传
小程序使用 Promise.all 完成文件异步上传 extends [微信小程序开发技巧总结(二) -- 文件的选取.移动.上传和下载 - Kindear - 博客园 (cnblogs.com)] ...
随机推荐
- 我用Python爬虫挣钱的那些事
在下写了10年Python,期间写了各种奇葩爬虫,挣各种奇葩的钱,写这篇文章总结下几种爬虫挣钱的方式. 1.最典型的就是找爬虫外包活儿. 这个真是体力活,最早是在国外各个freelancer网站上找适 ...
- IOTA price analysis
Iota coinchart Look at the trendline drawn in red color, at the very first beginning of this month, ...
- PHP学习 类型 变量 常数 运算符
PHP支持下列8种类型 标量类型 scalar type整数 integer浮点数 float double布尔 boolean字符串 string 特殊类型 special typeNULL资源 r ...
- Substrings (C++ find函数应用)
Description You are given a number of case-sensitive strings of alphabetic characters, find the larg ...
- Notes of Daily Scrum Meeting(12.16)
最近好几门课的大作业都到了要截止的时候了,好多天队员们都抽不出来时间做软工的项目了,这样确实 和我们的计划出入很大,不过希望老师谅解,三门课程设计确实压力很大. 今天的团队任务总结如下: 团队成员 今 ...
- SCRUM 12.17
今天,我们的用户统计功能终于上线了!! 大家辛苦工作了许久.我们测试的用户统计功能效果模拟如下 还有一些好消息,比如,我们的应用在小米平台收到了崩溃的反馈报告. 这说明我们留下的一些BUG暴露了出来, ...
- 关于给C盘扩容以及动态磁盘
2019.4.5 周五 磁盘分为基本磁盘和动态磁盘 基本磁盘转动态磁盘是很容易的 https://jingyan.baidu.com/article/59a015e3a3d504f7948865b1. ...
- 转帖 OKR
什么是OKR OKR全称是Objectives and Key Results,即目标与关键成果法.OKR是一套定义和跟踪目标及其完成情况的管理工具和方法.1999年Intel公司发明了这种方法,后来 ...
- letsencrypt续期 最简单的续期方法更新证书
Let's Encrypt申请的证书会有三个月的有效期,如何更方便的续期呢? 关于证书续期: 所谓letsencrypt续期,续期相当于重新申请一次证书,然后在服务器端将过期的证书替换掉即可.由于这个 ...
- MT【105】待定系数算最大最小
已知$x,y,z>0$,则$max\{2x,\frac{1}{y},y+\frac{1}{x}\}$的最小值______ 分析:首先关注到$2x=\frac{1}{y}=y+\frac{1}{x ...