我用Flash做上传,需要用户登录后才可以上传
后台用PHPWIND二次开发,接收文件upload.php中对用户登录做验证
我不懂PHP,请热心的大侠看一下include_once('global.php');
if(!$winduid){ 
    echo "NEEDLOG"; 
    exit; 
}else{
    //......
}如上判断,不知道为什么在IE中单独请求upload.php时可以打印出 NEEDLOG,但是Flash请求时结果不对,欢迎指导建议!

解决方案 »

  1.   

    flash不可以把它理解成普通网页,往往他上传完成之后再次跳转之后就会丢失session,此时极难判断用户是否还是处于登录状态,所以你需要传递值,如果用户登陆之后保存的是cookie值,那么你可以不需要传递值,而是直接读取cookie进行判断即可,但是如果是使用了session存储用户的状态,那么你需要在调用flash的时候传递sessionid
    ,然后再把flash传递过来的sessionid独取出来根据此id获取session来判断,可以说是很麻烦.zheliflash扮演的角色就是取图片,然后负责传递参数.看我下边的代码你就知道了
    <embed width="400" height="310" align="middle" flashvars="&amp;work=doup&amp;siz=2048&amp;typ=jpg|gif|bmp|png|zip|rar&amp;pth=..%2F%40upload%2F&amp;sessionid=c3u5qhpbjv29vsuvm29q5l4se0" wmode="transparent" menu="false" loop="false" quality="high" src="img/fileupload.swf?php=../sys_file.php" type="application/x-shockwave-flash" pluginspage="http://www.macromedia.com/go/getflashplayer" name="swf1" id="swf1">
      

  2.   

    如果你想了解详细的流程,你可以下载我写的这个cms
    http://download.csdn.net/source/3248406
    这个cms的后台文件上传的地方就用了flash上传,另外存储用户的资料我用了session方法,你可以下载他把代码剥离出来研究一下,好像fla文件也在压缩包里边.
      

  3.   

    sibang,我没有找到你的接收上传的文件是哪一个呢
      

  4.   

    $winduid 是用户id? 打印出来看看 在确保你确实没有登录的情况下 这个id显示的是啥啊
    真要是存在的话 看看global.php中$winduid 是怎么被赋值的