Flex结合ASP 实现文件上传遇到的问题(学习笔记)

刚不久实现一个利用Flex结合ASP实现多文件上传的功能,遇到了不少问题,虽说功能不大,却学习到了不少。

具体实现方法在Flex一端代码

	var request:URLRequest = new URLRequest("com/esri/solutions/DotNetSetvices/UpLoadFileService.aspx");
	filerefernce.upload(request);


在ASP中代码大概如下:

using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.IO;

public partial class UpLoadFileService : System.Web.UI.Page
{
    string uploadFolder = "assets\\images\\view";
    protected void Page_Load(object sender, EventArgs e)
    {
        HttpFileCollection files = Request.Files;

        if (files.Count == 0)
        {
            Response.Write("锟斤拷锟斤拷直锟接凤拷锟绞憋拷锟侥硷拷");
            Response.End();
        }

        string path = Server.MapPath(uploadFolder);//返回与 Web 服务器上的指定虚拟路径相对应的物理文件路径。

        path = path.Replace("DotNetSetvices\\", "");

        HttpPostedFile file = files[0];
        string savePath="";
        if (file != null && file.ContentLength > 0)
        {
            string pFileName = Request.Form["fileName"];
            string[] filenames= Directory.GetFiles(path);//获得指定路径下的所有文件的数组
            bool IsChanged = false;
            foreach(string pfiles in filenames) 
            {
                string pfilename=path+"\\"+pFileName;
                if (pfiles == pfilename)
                {
                    savePath = path + "\\1" + pFileName;
                    IsChanged = true;
                }
            }
            if (!IsChanged)
            {
                savePath = path + "\\" + pFileName;
            }
            file.SaveAs(savePath);
        }
    }
}
问题1:如何实现从Flex中调试进入ASP中?

利用VS打开网站,路径设置为ASP路径,将要调试的Asp“设置为起始页”,并添加断点,启动调试,获得Asp的URL地址,再将Flex中的URLRequest中路径代码修改为如下:

	var request:URLRequest = new URLRequest("http://localhost:2625/DotNetSetvices/UpLoadFileService.aspx");
	filerefernce.upload(request);
添加断点,启动调试,就可以进入VS中调试ASP代码。

问题2:flex弹出:“filereference.upload出现Error #2038: 文件 I/O 错误。”

出现这种错误可能的原因有以下几点:

URL无效;

 上传文件大小超过服务器最大上传限制或最大POST限制;
 与服务器连接异常中断;
 上传的文件为空;
 文件(夹)权限 。

由于我上传了同名的文件,因此这属于URL问题吧。后来修改代码解决了问题

问题3:ASP中出现错误对路径的访问被拒绝。

对路径中的文件夹右键“安全”,为ASPNET用户添加权限即可。但右键时突然发现没有“安全”选项卡,后查阅资料发现只有磁盘格式为NTFS的才有“安全“选项卡,而我的代码所在磁盘格式为FAT32,需要将磁盘格式进行转换。

问题4:如何将磁盘格式从FAT32转为NTFS?

开始→运行→键入cmd按回车,在窗口“command prompt”下,输入命令“convert C: /FS:NTFS”按回车,重新启动电脑,即将FAT32 转换 NTSF 格式。注意:在“covert”的后面有一个空格,C是你要更改文件系统盘的卷标。



   

你可能感兴趣的:(Flex结合ASP 实现文件上传遇到的问题(学习笔记))