Alguém já passou por este problema ou tem alguma solução ?



On 5 jul, 00:18, Rudinei Alves <rudineic...@hotmail.com> wrote:
> Estou fazendo um aplicativo de envio de arquivos onde depois de logado
> o usuario fica  na sessao e é gravado junto ao arquivo no DB. Para
> outras funcionalidades com HTTPService consigo acessar esta variável
> ($_SESSION['user']) porém no arquivo de upload com o FileReference o
> user aparece null. Nota: isso só ocorre no Firefox, no IE funciona
> normal (...!!!). Como é um problema no backend não há nada relacionado
> na documentação. Também andei pesquisando (inclusive aqui) e encontrei
> alguns tópicos que não me deram (ou não entendi) a solução. Conto com
> o auxílio de vocês pois é realmente necessário que se grave o usuário
> junto ao arquivo.
>
> CODIGO FONTE FLEX
>
> <?xml version="1.0" encoding="utf-8"?>
> <mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml";
> layout="absolute" width="566"
>         creationComplete="init()"  title="Enviar Arquivo">
>
>     <mx:Script>
>         <![CDATA[
>                 import mx.rpc.events.ResultEvent;
>             import mx.controls.Alert;
>
>             //FUNÇOES DE UPLOAD
>
>             private var fr:FileReference;
>
>             private function init():void
>                         {
>
>                 fr = new FileReference;
>                 cancelBtn.visible = false;
>                 fr.addEventListener(Event.SELECT,onSelect);
>                 fr.addEventListener(Event.OPEN,onOpen);
>
> fr.addEventListener(ProgressEvent.PROGRESS,onProgress);
>                 fr.addEventListener(Event.COMPLETE,onComplete);
>
>             }
>
>             private function Browse():void
>             {
>                 infoLoad.text = "";
>
>                 var tipos:FileFilter = new FileFilter("Arquivos
> Permitidos"
>                 ,"*.jpg; *.jpeg; *.gif; *.png; *.zip; *.rar; *.cdr;
> *.psd; *.fla; *.ai; *.doc; *.txt; *.xls; *.pdf; *.mp3; *.wma; *.mpeg;
> *.avi;");
>                 var tiposArq:Array = new Array(tipos);
>                 fr.browse(tiposArq);
>             }
>
>             private function Cancel():void
>             {
>                 fr.cancel();
>                 dispatchEvent(new Event(Event.CANCEL));
>             }
>
>             private function onSelect(e:Event):void
>             {
>
>                 var Limit:int = 150; // Mb
>                 var Mb:int = 1048576;
>
>             if(fr.size <= (Limit * Mb))
>             {
>
>             //Envia     arquivo e variáveis
>             var Request:URLRequest = new URLRequest("ftpUpload.php");
>             var Vars:URLVariables = new URLVariables();
>
>                 //Vars.cod = Cod;
>                 Vars.user = User;
>                 Request.data = Vars;
>                 Request.method = URLRequestMethod.POST;
>                 fr.upload(Request);
>
>                 fileField.text = fr.name;
>                 pb.visible = true;
>                 cancelBtn.visible = true;
>                 addEventListener(Event.CANCEL,onCancel);
>             }
>             else
>             {
>                 Alert.show("O arquivo possui "+ int(fr.size/Mb*100)/100
> +"Mb e ultrapassa o limite de "+ Limit +"Mb.");
>                 fileField.text = "";
>                 cancelBtn.visible = false;
>
>             }
>             }
>
>             private function onOpen(e:Event):void
>             {
>                 pb.label = "%3%%";
>             }
>
>             private function onProgress(e:ProgressEvent):void
>             {
>                 pb.setProgress(e.bytesLoaded,e.bytesTotal);
>
>                 var Loaded:Number = int(e.bytesLoaded/1048576*100)/100;
>                 var Total:Number = int(e.bytesTotal/1048576*100)/100;
>
>                 infoLoad.text="Foram enviados "+Loaded+"Mb de "+Total
> +"Mb";
>
>                 if(e.bytesLoaded == e.bytesTotal){
>                 infoLoad.text = "Salvando o arquivo...";
>                 }
>             }
>
>             private function onCancel(e:Event):void
>             {
>                 infoLoad.text="Foi cancelado o envio do arquivo "+
> fr.name;
>                 finish();
>
>             }
>
>             private function onComplete(e:Event):void
>             {
>                 infoLoad.text="O arquivo "+ fr.name +" foi enviado com
> sucesso.";
>                 dispatchEvent(new Event('refresh'));
>                 finish();
>             }
>
>             // Limpa campos e remove listener e botao ao término ou
> cancelamento do Upload
>             private function finish():void
>             {
>                 fileField.text = '';
>                 pb.visible = false;
>                 cancelBtn.visible = false;
>                 removeEventListener(Event.CANCEL,onCancel);
>             }
>
>         ]]>
>     </mx:Script>
>
>     <mx:Canvas width="100%" height="99" >
>     <mx:HBox width="323" horizontalAlign="center" y="11" x="121">
>         <mx:TextInput id="fileField" enabled="false" editable="false"
> width="200"/>
>         <mx:Button label="Procurar..." click="Browse()"/>
>     </mx:HBox>
>     <mx:Button id="cancelBtn" label="Cancelar" click="Cancel()"
> width="90" x="444" y="11"/>
>      <mx:HBox width="100%"  horizontalAlign="center" y="42">
>         <mx:ProgressBar id="pb" mode="manual" labelPlacement="center"
> width="95%" visible="false" />
>      </mx:HBox>
>      <mx:Text x="0" y="65" width="100%" id="infoLoad"
> textAlign="center"/>
>     </mx:Canvas>
>
> </mx:TitleWindow>
>
> BACKEND PHP
>
> <?
> session_start();
> $user = $_SESSION['user'];
>
> $dir = $user;
>
>  set_time_limit(0);
>
>         $file =@ $_FILES["Filedata"];
>
>         $size = $file["size"];
>
>         if($size > 0){
>
>         if(!is_dir($dir)){
>         mkdir($dir,0755);
>         }
>
>         $cod = date("ymdHis");
>         $data_hora=date("d/m/y H:i");
>
>         $fileName =utf8_decode($file["name"]);
>
>         include("libs/t_text.php");
>
>         function autoRename($user,$name){
>
>         $extensao = substr($name,strrpos($name,".")+1);
>
>         $name=substr(ereg_replace('.'.$extensao,'',$name),0,70);
>
>         $newName=t_text($name).'.'.$extensao;
>
>         $n=0;
>         while($i==0){
>                 if(file_exists($user.'/'.$newName)){
>                 $n++;
>                 $newName=t_text($name).'['.$n.'].'.$extensao;
>                 $i=0;
>                 }else{
>                 $i=1;
>                 }
>         }
>
>         return $newName;
>         }
>
>         $fileName =autoRename($user,$fileName);
>
>         $ftp_server="ftp.nwdnet.com.br";
>         $ftp_user_name="xxxxxxxxxxx";
>         $ftp_user_pass="xxxxxxxxxxxx";
>
>         $temp_file=$file["tmp_name"];
>
>         $destination_file= "www/$user/$fileName";
>
>         $conn_id = ftp_connect("$ftp_server");
>         $ftp_login=ftp_login($conn_id, $ftp_user_name, $ftp_user_pass); if(!
> $ftp_login){echo "Falha na conexão !"; exit;}
>         $passive = ftp_pasv ($conn_id , true );
>         @ $Copy = ftp_put($conn_id, $destination_file,$temp_file,
> FTP_BINARY);
>         ftp_close($conn_id);
>
>         if($Copy){
>
>         // GRAVA NO BANCO DE DADOS
>
>         include("conexao.php");
>
>         $insert="INSERT INTO `arquivos_ftp` (`cod`, `data_hora`, `user`,
> `url`) VALUES ('$cod', '$data_hora', '$user', '$fileName')";
>         $result=mysql_query($insert);
>
>         echo "Arquivo enviado com sucesso !";
>
>         //mysql_close($conn);
>         }
>
>         }
>
> ?>

-- 
Você recebeu esta mensagem porque está inscrito na lista "flexdev"
Para enviar uma mensagem, envie um e-mail para flexdev@googlegroups.com
Para sair da lista, envie um email em branco para 
flexdev-unsubscr...@googlegroups.com
Mais opções estão disponíveis em http://groups.google.com/group/flexdev

Responder a