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 = "assetsimagesview";
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是你要更改文件系统盘的卷标。