使用swfupload上传控件,如何提交用户输入的信息连同文件路径一起存入数据库。

swordman123 2009-11-25 10:38:11
swfupload的上传是在page_load里面操作的。

在page_load里面。将上传的文件更名并将更名后的名称放在一hiddenfiled中。

在用户点击提交按钮来保存其他的文本框的信息到数据库的时候,不能得到hiddenfiled中的值?

各位有什么好的建议?

...全文
1529 9 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhujiongming 2012-08-23
  • 打赏
  • 举报
回复
都这么多年了这个帖子,不过8楼的理解很真正确,SWFUpload组件确实又新建了一个会话,通过Session以及request的setAttribute等方法都无法解决。只能是将数据传入到数据库中作为临时数据,没有什么好方法了
szcailim 2009-12-02
  • 打赏
  • 举报
回复
对于上传大文件,用SWFUPLOAD比较理想,稳定性不错,速度也快。但SWFUPLOAD上传文件时是重新开一个会话,与原来的会话没有任何关系,因此用Sessiona或hiddenfiled都无法进行传参。
我是用数据库一个临时表来传参数。主要思路如下:
1、在uploadfile.aspx页面 upload_url: 设为 " <%=strasp %>"
2、在uploadfile.aspx.cs文件
(1) 增加 public string strasp = "flashupload.aspx?sid=0";
(2)在Page_Load中
if (!IsPostBack)
ParamInit();
//在ParamInit()中产生唯一sid,并设strasp="flashload.aspx?sid"+sid,可把需要的参数一起写入数据库,把sid通过session或viewstate存起来供上传完成后提交入库时使用.(sid起标识作用。)
3、在文件上传后的处理文件flashupload.aspx.cs的page_load中
(1)先取得传过来的sid: string sid= Request.QueryString["sid"].ToString();
(2)以sid为标识,把文件名、文件大小等需要的参数写入数据库临时表
4、文件上传完成后,在uploadfile.aspx页面提交入库的代码中,以sid为标识通过数据库把需要的参数(文件名、大小等)取出来.

虽然感觉这方法有些别扭,但在两个项目中运行得还不错。不知谁有更好的方法,大家互相交流一下。
tyffdj 2009-12-02
  • 打赏
  • 举报
回复
这个问题你弄好了吗?我也遇到了同样的问题。
能讲解下吗?
swordman123 2009-11-27
  • 打赏
  • 举报
回复
文件名返回回来,存在一个隐藏域中,然后点击保存的时候 一起保存到数据库

保存到hiddenfiled中,还是不能得到文件名.
关键是上传在page_upload中处理,
如果能在button的事件中处理就好了
o0mickyaa 2009-11-27
  • 打赏
  • 举报
回复
http://www.cnblogs.com/peaceli/archive/2009/01/16/1377198.html
里面有代码。。
我试着用过,里面的文件进IO过程中取消有问题,然后删除时只可以删一个不过这个好改
还有就是上传大小为零的文件时提示图标有时有有时没有。。。
代码强大的一塌糊涂,你要是能整明白就好了
try530 2009-11-25
  • 打赏
  • 举报
回复
$(document).ready(function() {


$("#uploadify").uploadify({
'uploader' : 'scripts/uploadify.swf',
'script' : 'DoFileUpLoad.aspx',
'cancelImg' : 'images/cancel.png',
'queueID' : 'fileQueues',
'auto' : true ,
'multi' : false,
'sizeLimit' : 10000000, //控制上传文件的大小,单位byte10240000
'simUploadLimit' :3, //多文件上传时,同时上传文件数目限制
'buttonImg' :'images/addfileses.gif',
'height' :'21px',


'onSelect':function(event,queueID,fileObj){
//选择文件时触发



},

'onOpen':function(event,queueID,fileObj){
var filesize=parseInt(fileObj.size)/1000000;
AllFileSize=AllFileSize+filesize;
//
if(AllFileSize >1)
{
alert("上传附件大小总和不能超过10M");
$("#uploadify").uploadifyCancel(queueID);

}

},
'onCancel':function(event,queueID,fileObj,data){
var filesize=parseInt(fileObj.size )/1000000;
AllFileSize=AllFileSize-filesize;

},


'onComplete':function(event, queueID, fileObj, response, data){

var requestdata=eval('('+response +')');
var error=requestdata.error;
var filename=requestdata.filename;
var filesize=parseInt(fileObj.size)/1000000;
if($.trim(error)!="")
{
// alert("文件:“" + filename + "”" + error);
}
else
{

$("#fileQueues").append("<div style='border: 1px dashed #C0C0C0; margin-top:10px'><span style='margin-left:5px'>文件名:"+ filename +" </span><span style='margin-left:5px'>文件大小:"+ filesize +"MB </span> <span style='margin-left:20px'><a style='color:blue;' href='javascript:void(0)' onclick=\"DelFile($(this),'"+ filesize +"')\">[ 删 除 ]</a></span><input name='hi_filename' type='hidden' value='"+ filename +"' /></div>");

}
}

});

});

function ForDight1(Dight,How) {
Dight =(Dight*Math.pow(10,How)/Math.pow(10,How)).toFixed(How);
return Dight;
}

//删除文件
function DelFile(obj,filesize)
{
AllFileSize=AllFileSize-filesize;
obj_parent =obj.parent().parent();
obj_parent.remove();

}


//自动保存到草稿箱
function AutoSave()
{
//获取上传后的文件名列表
var FileQueues="";
$("#fileQueues").find(":input[name='hi_filename']").each(function(){

FileQueues=FileQueues+","+$(this).val();
});

var objComposeTo = $("#objComposeTo").val();//收件人
var objComposeCc= $("#objComposeCc").val();//抄送
var objComposeBcc=$("#objComposeBcc").val(); //密送
var objComposeSubject=$("#objComposeSubject").val(); //主题
var txtBodyContent=FCKeditorAPI.GetInstance("txtBodyContent").GetXHTML();//内容
//alert(txtBodyContent);
var cbOK="0";//发送时同时保存到[已发送]
if($("#cbOK").attr("checked")!="") cbOK="1";

var cbInstancy="0";//紧急
if($("#cbInstancy").attr("checked")!="") cbInstancy="1";

var Receipt="0";//已读回执
if($("#Receipt").attr("checked")!="") Receipt="1";

var DingSend="0";//定时发送
if($("#DingSend").attr("checked")!="") DingSend="1";

var txtTime=$("#txtTime").val();

var DropDownList1=$("#DropDownList1").val();

var DropDownList2=$("#DropDownList2").val();

var MailID=$("#MailID").val();
$.post("NewMail.aspx?ac=AutoSave",{MailID:""+ MailID +"",FileQueues:""+ FileQueues +"",objComposeTo:""+ objComposeTo +"",objComposeCc:""+ objComposeCc +"",objComposeBcc:""+ objComposeBcc +"",objComposeSubject:""+ objComposeSubject +"",txtBodyContent:""+ txtBodyContent +"",cbOK:""+ cbOK +"",cbInstancy:""+ cbInstancy +"",Receipt:""+ Receipt +"",DingSend:""+ DingSend +"",txtTime:""+ txtTime +"",DropDownList1:""+ DropDownList1 +"",DropDownList2:""+ DropDownList2 +""},function(data){
var dd=new Date();
var sub=data.split('|');
if(sub[0]=="1")
{


$("#MailID").val(sub[1]);
$("#SaveResoultInfo_Div").html("邮件已经存入草稿箱,保存时间:"+dd.getHours() +":"+ dd.getMinutes()+":"+dd.getSeconds() );
$("#SaveResoultInfo_Div").show("fast");
}
else
{
$("#SaveResoultInfo_Div").html("邮件存入草稿箱失败,保存时间:"+dd.getHours() +":"+ dd.getMinutes()+":"+dd.getSeconds() );
$("#SaveResoultInfo_Div").show("fast");
}
//alert(data);

})

}

//每5分钟保存一次
//setInterval("AutoSave()",300000);
try530 2009-11-25
  • 打赏
  • 举报
回复
既然是异步上传,那其他表单项目最好也用异步保存。

文件上传后,将文件名返回回来,存在一个隐藏域中,然后点击保存的时候 一起保存到数据库
yanglei6979431 2009-11-25
  • 打赏
  • 举报
回复
顶下 直接用fileupload不行?
swordman123 2009-11-25
  • 打赏
  • 举报
回复
有使用过swfupload没有?

62,243

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧