使用 swfupload 遇到的一些问题
2009-10-26 19:31
543 查看
swfupload 是一个客户端文件上传工具,它通过整合Flash与JavaScript技术为web开发人员提供了一个具有丰富功能超越传统<input type="file" />标签的文件上传模式。目前swfupload最新版本为V2.2.0,支持Flash Player 10 和9,不支持flash player8。swfupload 网址:http://swfupload.org/
在使用过程中遇到的值得记录的地方。
1.在官方给的demo中(applicationdemo.net),有三个页面Default.aspx,upload.aspx,thumbnail.aspx。因为我要做的是上传多个文件到文件系统中,所有我需要关注的是Default.aspx,upload.aspx两个页面。Default页面用于用户选择上传文件,upload页面接收swfupload发送过来的文件数据,在upload后台Page_Load方法中用下面的语句接收
HTMLPostedFile hpf = Request.Files["Filedata"];
2.default.aspx
<link href="CSS/uploadProgress.css" type="text/css" rel="Stylesheet" />
<script type="text/javascript" src="js/swfupload.js"></script>
<script type="text/javascript" src="js/handlers.js"></script>
<script type="text/javascript" src="js/swfupload.queue.js"></script>
<script type="text/javascript" src="js/fileprogress.js"></script>
<script type="text/javascript">
var swfu;
var clientName;
var projectName;
var conceptName;
var projectId;
var conceptId;
var ddlClient;
var ddlProject;
var ddlConcept;
</script>
3.原本在window.onload中调用ddlClientName() ,ddlProjectName(),ddlConceptName() 三个函数,但一直出现
“uncaught exception: call to SetPostParams failed” 错误(FF 3.5.3中),原因是此时swfu还未完全载入,遂将对这三个函数的调用放入handlers.js中fileDialogStart()函数中:
<div id="content">
<div id="swfu_container">
<div id="divUploadButton">
<span id="spanButtonPlaceholder"></span>
</div>
<div id="divUploadProgress"></div>
</div>
</div>
<div class="divUploadCancel">
<input id="btnUpload" type="button" value="Upload" onclick="swfu.startUpload()" />
<input id="btnCancel" type="button" value="Cancel Upload" disabled="disabled" onclick="cancelQueue(swfu)" />
</div>
<div><asp:Label id="Label1" runat="server" ForeColor="Red" Text="errror message" /></div>
upload.aspx.cs:
protected void Page_Load(object sender, EventArgs e) {
try
{
HttpPostedFile upload = Request.Files["FileData"];
// 获得文件保存路径
string path = ConfigurationManager.AppSettings["UploadBannerPath"];
string client = Request.QueryString["param_client"].ToString();
string project = Request.QueryString["param_project"].ToString();
int projectId = Convert.ToInt32(Request.QueryString["param_projectId"]);
string concept = Request.QueryString["param_concept"].ToString();
int conceptId = Convert.ToInt32(Request.QueryString["param_conceptId"]);
string fileName = Path.GetFileName(upload.FileName);
path += "\\" + client + "\\" + project + "\\" + concept;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
SaveRecordToDB(fileName, client, project, projectId, concept, conceptId);
// 保存文件
upload.SaveAs(path + "\\" + fileName);
// 返回状态码
Response.StatusCode = 200;
Response.Write("Success");
}
catch
{
Response.StatusCode = 500;
Response.Write("An error occured");
Response.End();
}
finally
{
Response.End();
}
} 下面是一些截图:
(1)选择文件后:
(2)点击Upload按钮:
附:swfupload 中文帮助文档:http://www.v-sky.com/doc/swfupload/Documentation.html
在使用过程中遇到的值得记录的地方。
1.在官方给的demo中(applicationdemo.net),有三个页面Default.aspx,upload.aspx,thumbnail.aspx。因为我要做的是上传多个文件到文件系统中,所有我需要关注的是Default.aspx,upload.aspx两个页面。Default页面用于用户选择上传文件,upload页面接收swfupload发送过来的文件数据,在upload后台Page_Load方法中用下面的语句接收
HTMLPostedFile hpf = Request.Files["Filedata"];
2.default.aspx
<link href="CSS/uploadProgress.css" type="text/css" rel="Stylesheet" />
<script type="text/javascript" src="js/swfupload.js"></script>
<script type="text/javascript" src="js/handlers.js"></script>
<script type="text/javascript" src="js/swfupload.queue.js"></script>
<script type="text/javascript" src="js/fileprogress.js"></script>
<script type="text/javascript">
var swfu;
var clientName;
var projectName;
var conceptName;
var projectId;
var conceptId;
var ddlClient;
var ddlProject;
var ddlConcept;
</script>
3.原本在window.onload中调用ddlClientName() ,ddlProjectName(),ddlConceptName() 三个函数,但一直出现
“uncaught exception: call to SetPostParams failed” 错误(FF 3.5.3中),原因是此时swfu还未完全载入,遂将对这三个函数的调用放入handlers.js中fileDialogStart()函数中:
<div id="content">
<div id="swfu_container">
<div id="divUploadButton">
<span id="spanButtonPlaceholder"></span>
</div>
<div id="divUploadProgress"></div>
</div>
</div>
<div class="divUploadCancel">
<input id="btnUpload" type="button" value="Upload" onclick="swfu.startUpload()" />
<input id="btnCancel" type="button" value="Cancel Upload" disabled="disabled" onclick="cancelQueue(swfu)" />
</div>
<div><asp:Label id="Label1" runat="server" ForeColor="Red" Text="errror message" /></div>
upload.aspx.cs:
protected void Page_Load(object sender, EventArgs e) {
try
{
HttpPostedFile upload = Request.Files["FileData"];
// 获得文件保存路径
string path = ConfigurationManager.AppSettings["UploadBannerPath"];
string client = Request.QueryString["param_client"].ToString();
string project = Request.QueryString["param_project"].ToString();
int projectId = Convert.ToInt32(Request.QueryString["param_projectId"]);
string concept = Request.QueryString["param_concept"].ToString();
int conceptId = Convert.ToInt32(Request.QueryString["param_conceptId"]);
string fileName = Path.GetFileName(upload.FileName);
path += "\\" + client + "\\" + project + "\\" + concept;
if (!Directory.Exists(path))
{
Directory.CreateDirectory(path);
}
SaveRecordToDB(fileName, client, project, projectId, concept, conceptId);
// 保存文件
upload.SaveAs(path + "\\" + fileName);
// 返回状态码
Response.StatusCode = 200;
Response.Write("Success");
}
catch
{
Response.StatusCode = 500;
Response.Write("An error occured");
Response.End();
}
finally
{
Response.End();
}
} 下面是一些截图:
(1)选择文件后:
(2)点击Upload按钮:
附:swfupload 中文帮助文档:http://www.v-sky.com/doc/swfupload/Documentation.html
相关文章推荐
- Qt5中创建及使用自定义插件遇到的一些问题
- javaWeb开发之MySQL和Cookie的使用练习中遇到的一些问题及解决
- 关于使用RecyclerView遇到的一些问题集合
- 使用springmvc mybatis moven dubbo 遇到的一些问题
- 使用thymeleaf时遇到的一些问题
- 记录安卓模拟器 Genymotion 使用过程中遇到的一些问题
- 使用JC组件遇到的一些问题
- 使用ZFPlayer过程中遇到的一些问题及解决办法
- dwz使用时遇到的一些问题
- Cocos2dx下使用JNI技术调用jar包里面的一些方法遇到的一些问题及解决方案
- linux+fortran+openmp使用中遇到的一些问题
- 使用mysql-5.7.17-winx64遇到的一些问题
- 生产环境使用elasticsearch遇到的一些问题以及解决方法(不断更新)
- 生产环境使用elasticsearch遇到的一些问题以及解决方法(不断更新)
- 在使用Struts的过程中也遇到了一些问题,现在总结一下
- log4net使用中遇到的一些问题
- 使用git遇到的一些问题
- Android studio集成svn遇到的一些问题与使用
- 使用高版本的SDK后再导入以前用低版本的project时,会遇到一些兼容性的问题。
- 使用 Cordova 遇到的一些问题