Hello How should understand this trace when uploading file to php
application:
what does eventPase = 2 means? same thing for bubbles=false?
[CODE]
progressHandler: name=4-nov-2007.gpx bytesLoaded=32768 bytesTotal=169869
progressHandler: name=4-nov-2007.gpx bytesLoaded=65536 bytesTotal=169869
progressHandler: name=4-nov-2007.gpx bytesLoaded=98304 bytesTotal=169869
progressHandler: name=4-nov-2007.gpx bytesLoaded=131072 bytesTotal=169869
progressHandler: name=4-nov-2007.gpx bytesLoaded=163840 bytesTotal=169869
progressHandler: name=4-nov-2007.gpx bytesLoaded=169869 bytesTotal=169869
completeHandler: [Event type="complete" bubbles=false cancelable=false
eventPhase=2]
[DataEvent type="uploadCompleteData" bubbles=false cancelable=false
eventPhase=2 data="0"][/CODE]
Print this message
Report this to a Moderator
OptimusFlex
User is online
Junior Member Posts: 4
Joined: 11/16/2007
Send Private Message
12/05/2007 10:59:01 AM New Messages
Reply | Quote | Top | Bottom | Edit
first code is flex, the second one is php, i would ike to know if they
do the same thing: upload a file to
http://server.com/plateform/ul/index.php?
[CODE]<?xml version="1.0" encoding="utf-8"?>
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400"
height="300"
initialize="init()"
>
<mx:Script>
<![CDATA[
import com.project.community.model.CommunityModel;
import com.project.community.model.EditorModel;
import mx.controls.Alert;
import mx.controls.ProgressBar;
import mx.utils.ObjectUtil;
import flash.events.*;
import flash.net.FileReference;
import flash.net.URLRequest;
/**
*
*/
private const UPLOAD_URL : String =
"http://server.com/plateform/ul/index.php";
private var _progressBar: ProgressBar = new ProgressBar();
private var _fileRef : FileReference = new FileReference();
private var _gpsTypes : FileFilter = new FileFilter("Text Files
(*.gpx)", "*.gpx");
public function init() : void
{
initListener();
}
public function initListener() : void
{
submit.addEventListener(MouseEvent.CLICK, submitClickHandler);
back.addEventListener(MouseEvent.CLICK, backClickHandler);
_fileRef.addEventListener(Event.SELECT, fileSelectedHandler);
_fileRef.addEventListener(ProgressEvent.PROGRESS, progressEventHandler);
_fileRef.addEventListener(IOErrorEvent.IO_ERROR, ioErrorHandler);
_fileRef.addEventListener(Event.COMPLETE, uploadCompletedHandler);
_fileRef.addEventListener(HTTPStatusEvent.HTTP_STATUS, httpStatusHandler);
_fileRef.addEventListener(DataEvent.UPLOAD_COMPLETE_DATA,
serverResponseHandler);
}
public function httpStatusHandler(event:HTTPStatusEvent): void
{
trace("httpStatusHandler: " + event);
}
/*public function httpStatusHandler(event:HTTPStatusEvent):void
{
if (event.status != 200)
{
if (event.status == 500){
mx.controls.Alert.show("Probleme d'écriture","Error");
return;
}
if (event.status == 404){
mx.controls.Alert.show("Fichier non trouvé","Error");
return;
}
if (event.status == 415){
mx.controls.Alert.show("Type de media interdit","Error");
return;
}
if (event.status == 401){
mx.controls.Alert.show("Acces refusé","Error");
return;
}
mx.controls.Alert.show("Erreur "+event.status,"Error");
}
}
*/
/**
* function that handles the event: click on browse button
*/
public function fileSelectedHandler(event : Event) : void
{
selectedfile.text = _fileRef.name;
progressBar.setProgress(0, 100);
//progressBar.label = "Loading 0%";
enabled = true;
//trace(selectedfile.text);
}
/**
* function that handle the event: click on back button.
*/
public function submitClickHandler(event : MouseEvent) : void
{
var params : URLVariables = new URLVariables();
var uploadRequest : URLRequest = new URLRequest(UPLOAD_URL);
params.filename = _fileRef.name;
params.sk = CommunityModel.getInstance().serverSessionKey; //
"9b166dc3b1a6bf702dfd87b825627b6a";
params.dk = "7ffcd213ac5e00a88a2968c6f3530aeb";
params.type = "track";
//affichage de l'erreur exact retournée par Icelio
//params.view_error = true;
uploadRequest.method = URLRequestMethod.POST;
uploadRequest.data = params;
trace(uploadRequest.url);
trace(uploadRequest.data);
trace(params.filename);
_fileRef.upload(uploadRequest);
// progressBar.label = "Uploading...";
// EditorModel.getInstance().changeEditor(EditorModel.C_NAVIGATOR_NUMBER);
}
public function progressEventHandler(event : ProgressEvent): void
{
var file:FileReference = FileReference(event.target);
trace("progressHandler: name=" + _fileRef.name + " bytesLoaded=" +
event.bytesLoaded + " bytesTotal=" + event.bytesTotal);
_progressBar.setProgress(event.bytesLoaded, event.bytesTotal);
}
public function uploadCompletedHandler(event : Event):void
{
trace("completeHandler: " + event);
}
public function serverResponseHandler( event:DataEvent ) :void
{
trace(event);
var response : XML = XML( event.data );
trace(response);
}
/**
* function that handle the event: click on back button
*/
public function backClickHandler(e : MouseEvent) : void
{
EditorModel.getInstance().changeEditor(EditorModel.C_NAVIGATOR_NUMBER);
}
public function ioErrorHandler (event : IOErrorEvent) : void
{
trace("ioErrorHandler: " + event);
}
]]>
</mx:Script>
<mx:Panel
title="{EditorModel.getInstance().langTraceInserterterTitle}" top="0"
bottom="15" left="1" right="10">
<mx:Canvas verticalScrollPolicy="auto" width="100%" height="100%">
<mx:TextInput x="10" y="20" id="selectedfile" />
<mx:Button x="167" y="20" id="browse"
label="{EditorModel.getInstance().langTraceInserterterBrowser}"
click="_fileRef.browse([_gpsTypes])" />
<!-- progress bar -->
<mx:ProgressBar label="Transfert Progress" id="progressBar"
mode="manual" x="10" y="50"/>
<!-- submit -->
<mx:Button id="submit"
label="{EditorModel.getInstance().langTraceInserterterValidate}"
buttonMode="true" useHandCursor="true" width="120"
styleName="submit" right="10" top="10"
/>
<mx:Button id="back"
label="{EditorModel.getInstance().langTraceInserterterCancel}"
buttonMode="true" useHandCursor="true" width="120"
styleName="cancel" y="65" right="10"
/>
</mx:Canvas>
</mx:Panel>
</mx:Canvas>[/CODE]
[CODE]<?php
define('FOLDER_ROOT', '../..');
$load_param =
array('session','template','cnty_tools_main','cnty_tools_action','cnty_conf','error','xss');
require_once('head.php');
include PATH_TEMPLATES_CONFIG."/_config_account.php";
$aTemplates['Account_Form'] =
file_get_contents($cfg['path_tmpl_list'].'tmpl_trace_new.html');
function DoOutput ()
{
global $rt;
echo TemplateProcess($rt['output']);
}
$addr = $cfg['this_url'];
//$sub_name = substr($_SESSION['sess_key_plateform'], 0, 10);
/* Send file
@param string $url Url
@param array $file File array
@param array $var Var array
@param string $boundary Separator
@return array with header and content client response
*/
function header_build($url, $file, $var = null, $boundary =
'---------------------------9633331271588363780939124723') {
$response = null;
$tab = parse_url($url);
echo ($tab);
$fp = fsockopen($tab['host'], 80, $errno, $errstr, 30);
$parsingfile = fopen('parsingfile.txt', 'r+');
fseek($parsingfile, 0);
fputs($parsingfile, $tab);
fclose($parsingfile);
//$parsingresult = file_get_contents($parsingfile);
echo ($parsingresult);
if ($fp) {
// Build the header
$header = "POST ".$tab['path']." HTTP/1.0\r\n";
$header .= "Host: ".$tab['host']."\r\n";
$header .= "Content-type: multipart/form-data, boundary=$boundary\r\n";
$data = null;
// Add post var
foreach ($var as $k => $v) {
$data .="--$boundary\r\n";
$data .= "Content-Disposition: form-data; name=\"".$k."\"\r\n";
$data .= "\r\n".$v."\r\n";
}
// Attach files
foreach ($file as $f) {
$data .= "--$boundary\r\n";
$data .="Content-Disposition: form-data; name=\"ul_files[]\";
filename=\"".basename($f)."\"\r\n";
$data .= "Content-Type: unknow/unknow\r\n\r\n";
$data .= file_get_contents($f)."\r\n";
$data .= "--$boundary\r\n";
}
$header .= "Content-length: ".strlen($data)."\r\n\r\n";
// Write !
fwrite($fp, $header.$data);
$data = null;
// Read response
while (!feof($fp)) {
$data .= fread($fp, 32);
}
?>
[/CODE]