asp.net建立一个带验证的上传文件接口然后用安卓程序和微信小程序上传文件

安卓app和微信小程序上传小文件是常见的功能,下面我用asp.net写一个接口,并且模拟这个接口只能在验证特定用户身份后才上传文件。然后分别用微信开发者工具写一个微信小程序、Android Studio写一个app,实现上传小文件功能。根据不同开发工具,代码分为三部份,第一个是asp.net接口。
  打开或新建一个网站,在“解决方案资源窗口”右键添加一个文件夹,取名upload,用于存放上传的文件,再添加一个类取名UpLoad,它将被封装成JSON用于告诉调用接口者文件是否上传的相关信息。在UpLoad添加几个公有变量。它们分别是:
  filename,类型string,如果文件上传成功,会显示存储到服务器的文件名,上传失败则返回空的字符串。
  ext,类型string 如果文件上传成功,会显示存储到服务器的文件名扩展名,上传失败则返回空的字符串。
  iscorrect,类型bool,文件上传为true,反之为false。
  tip 类型string,如果文件上传成功显示“上传成功”,反之显示相应错误信息。代码如下

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;


/// <summary>
///UpLoad 的摘要说明
/// </summary>
public class UpLoad
{
   
    public string filename;
    public string ext;
    public bool iscorrect;
    public string tip;
   

	public UpLoad()
	{
   
		//
		//TODO: 在此处添加构造函数逻辑
		//
        filename = "";
        ext = "";
        iscorrect = true;
        tip = "";

	}
}

然后我们继续在“解决方案资源窗口”右键添加一个“一般处理程序”(扩展名ashx),此处取名为UploadFileAndLoginHandler。这里必须模拟用户名必须是admin才能上传文件,代码如下

<%@ WebHandler Language="C#" Class="UploadFileAndLoginHandler" %>
using System;
using System.Web;
using System.IO;
using Newtonsoft.Json;

public class UploadFileAndLoginHandler : IHttpHandler {
   

    public void ProcessRequest(HttpContext context)
    {
   
        context.Response.ContentType = "text/plain";


        UpLoad XUpload = new UpLoad();
        if (context.Request.Params["username"] == null)
        {
   
            XUpload.filename = "";
            XUpload.ext = "";
            XUpload.iscorrect = false;
            XUpload.tip = "必须输入用户名";
            string result = JsonConvert.SerializeObject(XUpload);
            context.Response.Write(result);
            return;
        }

        if (context.Request.Params["username"].ToString() != "admin")
        {
   
            XUpload.filename = "";
            XUpload.ext = "";
            XUpload.iscorrect = false;
            XUpload.tip = "用户名不正确";
            string result = JsonConvert.SerializeObject(XUpload);
            context.Response.Write(result);
            return;
        }

        try
        {
   
            if (context.Request.Files.Count > 0)
            {
   
                HttpPostedFile file = context.Request.Files["upload_file"];
                string filename = Path.GetFileNameWithoutExtension(file.FileName);
                string ext = Path.GetExtension(file.FileName);
                string newfilename = DateTime.Now.Ticks.ToString() + ext;
                string filePath = context.Server.MapPath("upload/") + newfilename;
                file.SaveAs(filePath);
                XUpload.filename = newfilename;
                XUpload.ext = ext;
                XUpload.iscorrect = true;
                XUpload.tip = "";
                // context.Response.Write("Yes");
            }
            else
            {
   
                XUpload.filename = "";
                XUpload.ext = "";
                XUpload.iscorrect = false
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值