# Upload Script - Uploadify

**URL:** https://forum.shopware.com/t/upload-script-uploadify/2094
**Category:** Shopware 3.5
**Tags:** programming
**Created:** [10. März 2011 um 11:37 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094 "2011-03-10T11:37:30Z")
**Posts on this page:** 14
**Page:** 2

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [14. März 2011 um 16:25 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/21 "2011-03-14T16:25:35Z")

</div>

Hey Stefan, habe ich versucht, leider bleibt die Variable leer: ` public static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); $config = Shopware()-\>Plugins()-\>Frontend()-\>OrderUpload()-\>Config(); $view-\>OrderUploadConfig = $config; Shopware()-\>Session()-\>bestellnummer = $view-\>ordernumber; if ($request-\>getActionName()=="finish"){ $view-\>addTemplateDir(dirname(\_\_FILE\_\_).'/Views/'); $view-\>extendsTemplate('frontend/plugins/OrderUpload/template/index.tpl'); } } `

---

<div class="post-metadata">

### Author: ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)
#### Post date: [14. März 2011 um 16:26 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/22 "2011-03-14T16:26:44Z")

</div>

Das war doch nur ein Beispiel von mir?! Von welchem Template sprechen wir denn? Wo wird dein Upload-Widget aktiv?? Da musst du in das Original-Template schauen und prüfen unter welchem Namen, die Bestellnummer dort bereitgestellt wird

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [14. März 2011 um 16:57 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/23 "2011-03-14T16:57:55Z")

</div>

Ich hab doch nachgeschaut! Wir sprechen von Checkout/Finish.tpl Wenn ich auf der Seite bin, sehe ich mit Firebug, dass in der Variable Ordernumber die Bestellnummer steht. Ich könnte auch sBasket.Ordernumber nehmen.

---

<div class="post-metadata">

### Author: ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)
#### Post date: [14. März 2011 um 17:01 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/24 "2011-03-14T17:01:47Z")

</div>

Die Variable heißt doch dort $sOrderNumber ?? checkout/finish.tpl - Zeile 47

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [14. März 2011 um 17:16 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/25 "2011-03-14T17:16:00Z")

</div>

Firebug zeigt mir Zwei an, ordernumber und sOrderNumber. Ich habe es nur mit der Ersten versucht. Sollte ja eig. auch gehen. Dann versuch ich es mal mit sOrderNumber.

---

<div class="post-metadata">

### Author: ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)
#### Post date: [14. März 2011 um 17:17 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/26 "2011-03-14T17:17:57Z")

</div>

Das müsste so dann aber eigentlich funktionieren. Shopware()-\>Session()-\>bestellnummer = $view-\>ordernumber; Bau mal ein ` die(Shopware()-\>Session()-\>bestellnummer); ` darunter ein.

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [14. März 2011 um 20:16 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/27 "2011-03-14T20:16:14Z")

</div>

mhhh, irgendwo passt da noch was nicht. Packe ich die() in die Bootstrap, so sehe ich die Bestellnummer: ` public static function onPostDispatch(Enlight\_Event\_EventArgs $args) { $request = $args-\>getSubject()-\>Request(); $response = $args-\>getSubject()-\>Response(); $view = $args-\>getSubject()-\>View(); $config = Shopware()-\>Plugins()-\>Frontend()-\>OrderUpload()-\>Config(); $view-\>OrderUploadConfig = $config; if ($request-\>getActionName()=="finish"){ Shopware()-\>Session()-\>bestellnummer = $view-\>ordernumber; die(Shopware()-\>Session()-\>bestellnummer); $view-\>addTemplateDir(dirname(\_\_FILE\_\_).'/Views/'); $view-\>extendsTemplate('frontend/plugins/OrderUpload/template/index.tpl'); } }` Ruf ich den Wert nun im Controller ab und schicken diesen per Email an mich, so bleibt die Variable leer: [code]\<?php class Shopware\_Controllers\_Frontend\_OrderUpload extends Enlight\_Controller\_Action  
{

```
	public function indexAction()
		{
			
		}
	
	public function uploadAction()
		{
		$this->View()-\>setTemplate(); $config = Shopware()-\>Plugins()-\>Frontend()-\>OrderUpload()-\>Config(); $file = $\_FILES['Filedata']['tmp\_name']; $fileExtension = explode(".",$\_FILES['Filedata']['name']); $fileExtension = $fileExtension[count($fileExtension)-1]; mail("ottscho@ottscho.de","fileextension",print\_r($fileExtension,true)); mail("ottscho@ottscho.de","test2",print\_r($file,true)); $bestellnummer = Shopware()-\>Session()-\>bestellnummer; mail("ottscho@ottscho.de","bestellnummer",print\_r($bestellnummer,true)); if (!in\_array($fileExtension,array("jpg","tif","pdf","png"))){ mail("ottscho@ottscho.de","fehler",print\_r($file,true)); throw new Enlight\_Exception("Invalid file type"); } $uploadDirectory = Shopware()-\>DocPath().$config-\>directory; mail("ottscho@ottscho.de","pfad",print\_r($uploadDirectory,true)); $filenew = $uploadDirectory."/".md5(uniqid(rand())).".".$fileExtension; mail("ottscho@ottscho.de","file",print\_r($file,true)); mail("ottscho@ottscho.de","newfile",print\_r($filenew,true)); move\_uploaded\_file($file,$filenew); echo '1'; } } ?\> [/code]
```

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [15. März 2011 um 14:42 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/28 "2011-03-15T14:42:32Z")

</div>

hat hier noch jmd einen Tipp?

---

<div class="post-metadata">

### Author: ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)
#### Post date: [15. März 2011 um 14:47 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/29 "2011-03-15T14:47:08Z")

</div>

Das Upload-Script wird ja intern durch Flash aufgerufen - dort wird vermutlich eine neue Session gestartet, deshalb funktioniert das so niciht. Du müsstest die aktuelle Session-ID mit an das Upload-Script übergeben. Also die ID im Template bereitstellen: ` $view-\>sessionID = session\_id(); ` Und dann im Template an die URL anhängen, mit der du das UPload-Script definierst. Also irgendwo teilst du dem Flash-Uploader ja mit, welche UPload-URL benutzt werden soll. Dort ?sCoreId={$sessionID} anfügen - dann müsste das funktionieren. Wobei, dann könntest du auf diesen Umweg verzichten und eigentlich die Bestellnummer auch direkt als Parameter an das Upload-Script übergeben 😉

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [15. März 2011 um 14:57 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/30 "2011-03-15T14:57:08Z")

</div>

[quote=“Stefan Hamann”]Das Upload-Script wird ja intern durch Flash aufgerufen - dort wird vermutlich eine neue Session gestartet, deshalb funktioniert das so niciht. Du müsstest die aktuelle Session-ID mit an das Upload-Script übergeben. Also die ID im Template bereitstellen: ` $view-\>sessionID = session\_id(); ` Und dann im Template an die URL anhängen, mit der du das UPload-Script definierst. Also irgendwo teilst du dem Flash-Uploader ja mit, welche UPload-URL benutzt werden soll. Dort ?sCoreId={sessionID} anfügen - dann müsste das funktionieren. Wobei, dann könntest du auf diesen Umweg verzichten und eigentlich die Bestellnummer auch direkt als Parameter an das Upload-Script übergeben ;)[/quote] richtig ;) Das Problem ist, sobald ich in der JS Datei an die URL was anhänge, kackt Flash ab. habe ich schon versucht. Das Problem ist, dass die JS Datei komplett ohne Umbrüche und Leerzeichen ist! Kann man die irgendwie automatisch strukturieren? [code] /\* Uploadify v1.6.2 Copyright (C) 2009 by Ronnie Garcia Co-developed by Travis Nickels This program is free software: you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program. If not, see \<http:\>\</http:\>. \*/ var flashVer=-1;if(navigator.plugins!=null&&navigator.plugins.length\\>0){if(navigator.plugins["Shockwave Flash 2.0"]||navigator.plugins["Shockwave Flash"]){var swVer2=navigator.plugins["Shockwave Flash 2.0"]?" 2.0":"";var flashDescription=navigator.plugins["Shockwave Flash"+swVer2].description;var descArray=flashDescription.split(" ");var tempArrayMajor=descArray[2].split(".");var versionMajor=tempArrayMajor[0];var versionMinor=tempArrayMajor[1];var versionRevision=descArray[3];if(versionRevision==""){versionRevision=descArray[4]}if(versionRevision[0]=="d"){versionRevision=versionRevision.substring(1)}else{if(versionRevision[0]=="r"){ersionRevision=versionRevision.substring(1);if(versionRevision.indexOf("d")\\>0){versionRevision=versionRevision.substring(0,versionRevision.indexOf("d"))}}}var flashVer=versionMajor+"."+versionMinor+"."+versionRevision}}else{if(.browser.msie){var version;var axo;var e;try{axo=new ActiveXObject(“ShockwaveFlash.ShockwaveFlash.7”);version=axo.GetVariable("$version")}catch(e){}flashVer=version.replace(“WIN “,””).replace(",",".")}}flashVer=flashVer.split(".")[0];if(jQuery){(function(a){a.extend(a.fn,{fileUpload:function(b){if(flashVer\>=9){a(this).each(function(){settings=a.extend({uploader:“uploader.swf”,script:“uploader.php”,folder:"",height:30,width:110,cancelImg:“cancel.png”,wmode:“opaque”,scriptAccess:“sameDomain”,fileDataName:“Filedata”,displayData:“percentage”,onInit:function(){},onSelect:function(){},onCheck:function(){},onCancel:function(){},onError:function(){},onProgress:function(){},onComplete:function(){}},b);var d=location.pathname;d=d.split("/");d.pop();d=d.join("/")+"/";var f="&pagepath="+d;if(settings.buttonImg){f+="&buttonImg="+escape(settings.buttonImg)}if(settings.buttonText){f+="&buttonText="+escape(settings.buttonText)}if(settings.rollover){f+="&rollover=true"}f+="&script="+settings.script;f+="&folder="+escape(settings.folder);if(settings.scriptData){var g="";for(var c in settings.scriptData){g+="&"+c+"="+settings.scriptData[c]}f+="&scriptData="+escape(g)}f+="&btnWidth="+settings.width;f+="&btnHeight="+settings.height;f+="&wmode="+settings.wmode;if(settings.hideButton){f+="&hideButton=true"}if(settings.fileDesc){f+="&fileDesc="+settings.fileDesc+"&fileExt="+settings.fileExt}if(settings.multi){f+="&multi=true"}if(settings.auto){f+="&auto=true"}if(settings.sizeLimit){f+="&sizeLimit="+settings.sizeLimit}if(settings.simUploadLimit){f+="&simUploadLimit="+settings.simUploadLimit}if(settings.checkScript){f+="&checkScript="+settings.checkScript}if(settings.fileDataName){f+="&fileDataName="+settings.fileDataName}if(a.browser.msie){flashElement=’

'}else{flashElement=''}if(settings.onInit()!==false){a(this).css("display","none");if(a.browser.msie){a(this).after('

‘);document.getElementById(a(this).attr(“id”)+“Uploader”).outerHTML=flashElement}else{a(this).after(flashElement)}a("#"+a(this).attr(“id”)+“Uploader”).after(’

‘)}a(this).bind(“rfuSelect”,{action:settings.onSelect},function(j,h,i){if(j.data.action(j,h,i)!==false){var k=Math.round(i.size/1024\*100)\*0.01;var l=“KB”;if(k\>1000){k=Math.round(k\*0.001\*100)\*0.01;l=“MB”}var m=k.toString().split(".");if(m.length\>1){k=m[0]+"."+m[1].substr(0,2)}else{k=m[0]}if(i.name.length\>20){fileName=i.name.substr(0,20)+"…"}else{fileName=i.name}a("#"+a(this).attr(“id”)+“Queue”).append(’

[![]()](javascript:$(’#’+a(this).attr()  
‘+fileName+" ("+k+l+’)&nbsp;

‘)}});if(typeof(settings.onSelectOnce)==“function”){a(this).bind(“rfuSelectOnce”,settings.onSelectOnce)}a(this).bind(“rfuCheckExist”,{action:settings.onCheck},function(m,l,j,k,o){var i=new Object();i.folder=d+k;for(var h in j){i[h]=j[h];if(o){var n=h}}a.post(l,i,function®{for(var p in r){if(m.data.action(m,l,j,k,o)!==false){var q=confirm(“Do you want to replace the file '”+r[p]+"’?");if(!q){document.getElementById(a(m.target).attr(“id”)+“Uploader”).cancelFileUpload§}}}if(o){document.getElementById(a(m.target).attr(“id”)+“Uploader”).startFileUpload(n,true)}else{document.getElementById(a(m.target).attr(“id”)+“Uploader”).startFileUpload(null,true)}},“json”)});a(this).bind(“rfuCancel”,{action:settings.onCancel},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr(“id”)+h).fadeOut(250,function(){a("#"+a(this).attr(“id”)+h).remove()})}});a(this).bind(“rfuClearQueue”,{action:settings.onClearQueue},function(){if(event.data.action()!==false){a("#"+a(this).attr(“id”)+“Queue”).contents().fadeOut(250,function(){a("#"+a(this).attr(“id”)+“Queue”).empty()})}});a(this).bind(“rfuError”,{action:settings.onError},function(k,h,j,i){if(k.data.action(k,h,j,i)!==false){a("#"+a(this).attr(“id”)+h+" .fileName").text(i.type+" Error - “+j.name);a(”#"+a(this).attr(“id”)+h).css({border:“3px solid #FBCBBC”,“background-color”:"#FDE5DD"})}});a(this).bind(“rfuProgress”,{action:settings.onProgress,toDisplay:settings.displayData},function(j,h,i,k){if(j.data.action(j,h,i,k)!==false){a("#"+a(this).attr(“id”)+h+“ProgressBar”).css(“width”,k.percentage+"%");if(j.data.toDisplay==“percentage”){displayData=" - “+k.percentage+”%"}if(j.data.toDisplay==“speed”){displayData=" - “+k.speed+“KB/s”}if(j.data.toDisplay==null){displayData=” “}a(”#"+a(this).attr(“id”)+h+" .percentage").text(displayData)}});a(this).bind(“rfuComplete”,{action:settings.onComplete},function(k,h,j,i,l){if(k.data.action(k,h,j,unescape(i),l)!==false){a("#"+a(this).attr(“id”)+h).fadeOut(250,function(){a("#"+a(this).attr(“id”)+h).remove()});a("#"+a(this).attr(“id”)+h+" .percentage").text(" - Completed")}});if(typeof(settings.onAllComplete)==“function”){a(this).bind(“rfuAllComplete”,settings.onAllComplete)}})}},fileUploadSettings:function(b,c){a(this).each(function(){document.getElementById(a(this).attr(“id”)+“Uploader”).updateSettings(b,c)})},fileUploadStart:function(b){a(this).each(function(){document.getElementById(a(this).attr(“id”)+“Uploader”).startFileUpload(b,false)})},fileUploadCancel:function(b){a(this).each(function(){document.getElementById(a(this).attr(“id”)+“Uploader”).cancelFileUpload(b)})},fileUploadClearQueue:function(){a(this).each(function(){document.getElementById(a(this).attr(“id”)+“Uploader”).clearFileUploadQueue()})}})})(jQuery)}; [/code]

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [16. März 2011 um 11:22 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/31 "2011-03-16T11:22:54Z")

</div>

So, habe nun eine Seite gefunden, welche den Code wieder strukturiert: [http://jsbeautifier.org/](http://jsbeautifier.org/) Jetzt macht die JS Datei auch einen Sinn.

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [16. März 2011 um 11:58 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/32 "2011-03-16T11:58:05Z")

</div>

Mhhh, leider komme ich nicht weiter. Ich versuche nun die Variable über GET an den Controller zu übergeben. Soweit sieht alles okay aus. `<embed width="110" height="30" type="application/x-shockwave-flash" wmode="opaque" allowscriptaccess="sameDomain" name="fileUploadUploader" class="fileUploaderBtn" id="fileUploadUploader" quality="high" src="/engine/Shopware/Plugins/Community/Frontend/OrderUpload/Views/frontend/plugins/OrderUpload/_resources/uploadify/uploader.swf?fileUploadID=fileUpload&amp;pagepath=/shopware.php/sViewport,checkout/&amp;buttonText=Datei%20suchen...&amp;script=http://www.shopware.vm/shopware.php/sViewport,OrderUpload/sAction,upload&amp;folder=&amp;ordernumber=123123123&amp;btnWidth=110&amp;btnHeight=30&amp;wmode=opaque&amp;fileDesc=Supported%20Files&amp;fileExt=*.ai;*.psd;*.ps;*.jpg;*.tif;*.pdf;*.png;*.zip;*.rar&amp;auto=true&amp;fileDataName=Filedata">
`

Aber im Controller kommt nichts an ☹  
Jmd eine Idee woran das liegen könnte?

Controller:

[code]

\<?php class Shopware\_Controllers\_Frontend\_OrderUpload extends Enlight\_Controller\_Action { public function indexAction() { } public function uploadAction() { $ordernumber = strval($this-\>Request()-\>ordernumber); mail("ottscho@ottscho.de","get1",print\_r('get1: '.$\_GET['ordernumber'],true)); mail("ottscho@ottscho.de","get2",print\_r('get2: '.strval($this-\>Request()-\>ordernumber),true)); $this-\>View()-\>setTemplate(); $config = Shopware()-\>Plugins()-\>Frontend()-\>OrderUpload()-\>Config(); $file = $\_FILES['Filedata']['tmp\_name']; $fileExtension = explode(".",$\_FILES['Filedata']['name']); $fileExtension = $fileExtension[count($fileExtension)-1]; mail("ottscho@ottscho.de","fileextension",print\_r($fileExtension,true)); mail("ottscho@ottscho.de","test2",print\_r($file,true)); $bestellnummer = Shopware()-\>Session()-\>bestellnummer; mail("ottscho@ottscho.de","bestellnummer",print\_r("bestellnummer: ".$bestellnummer,true)); $uploadDirectory = Shopware()-\>DocPath().$config-\>directory; mail("ottscho@ottscho.de","pfad",print\_r($uploadDirectory,true)); $filenew = $uploadDirectory."/".$ordernumber."\_".md5(uniqid(rand())).".".$fileExtension; mail("ottscho@ottscho.de","file",print\_r($file,true)); mail("ottscho@ottscho.de","newfile",print\_r($filenew,true)); move\_uploaded\_file($file,$filenew); echo '1'; } } ?\> [/code]

---

<div class="post-metadata">

### Author: ![Stefan\_Hamann](https://avatars.discourse-cdn.com/v4/letter/s/5e9695/32.png) [@Stefan\_Hamann](https://forum.shopware.com/u/Stefan_Hamann)
#### Post date: [16. März 2011 um 14:16 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/33 "2011-03-16T14:16:30Z")

</div>

Probiere es mal so: [http://www.shopware.vm/shopware.php/sVi … …weiter…](http://www.shopware.vm/shopware.php/sViewport,OrderUpload/sAction,upload/Bestellnummer,12345&...weiter..).

---

<div class="post-metadata">

### Author: ![ottscho](https://avatars.discourse-cdn.com/v4/letter/o/7ba0ec/32.png) [@ottscho](https://forum.shopware.com/u/ottscho)
#### Post date: [16. März 2011 um 14:39 UTC](https://forum.shopware.com/t/upload-script-uploadify/2094/34 "2011-03-16T14:39:51Z")

</div>

Es geht 🙂 Super, du bist heute mein persönlicher Held. Endlich kann ich das Thema beenden…

[Vorherige Seite](https://forum.shopware.com/t/upload-script-uploadify/2094.md?page=1)
