Multiupload pomoci Nette 2.0 a Uploadify – Chyba 303
- jiri.medved
- Člen | 33
Ahoj,
prosim o pomoc s multiuploadem v Nette + Uploadify.
Nejdrive jsem si to vyzkousel mimo Nette a vse v poradku, ale v Nette mam potize.
Uploadify vyhazuje chybu Http #303. V error logu nic neni, pouze jen v other_vhosts_access:
medved.dev:80 127.0.0.1 - - [13/Jan/2012:18:07:11 +0100] "POST /admin/files/uploadify HTTP/1.1" 303 37343 "-" "Shockwave Flash"
O chybě jsem nasel toto https://en.wikipedia.org/wiki/HTTP_303 , ale nejak mi to nedava smysl :-(
- jiri.medved
- Člen | 33
Tak jiz vim, kde je asi problem. Flash si zavola funkci pro upload v administraci, kde musi byt uzivatel prihlaseny. Nette, ale Flash za prihlaseneho nepovazuje a tak do pomoci 303 redirectne na login.
Napad jak to vyresit?
- Acnnair
- Člen | 34
Mal som rovnaký problém, po nejakom googlení som to vyriešil takto:
index.php
if(isset($_REQUEST[session_name()])) {
$_COOKIE[session_name()] = $_REQUEST[session_name()];
}
do uploadify pridať session id
$('#file-upload').uploadify({
...
'scriptData': {
{=session_name()}: {=session_id()}
}
});
Myslím, že to je všetko čo som menil, snáď pomôže. Ak to niekto vedel vyriešiť elegantnejšie, sem s tým :-)
- troopy
- Člen | 1
Malý poznatek. Řešil jsem tento problém. Na localhost jelo vše OK, na serveru mi cosi přepisovalo $_REQUEST[session_name()]
Pomohlo použít jiný název pro tuto proměnnou
if(isset($_REQUEST['imgUpSID'])) {
$_COOKIE[session_name()] = $_REQUEST['imgUpSID'];
}
ve scriptu uploadify pak takto:
<script type="text/javascript">
// <![CDATA[
$(document).ready(function() {
$('#file_upload').uploadify({
'uploader' : '{!$baseUri}/js/uploadify/uploadify.swf',
'script' : '{!$uploadImage}',
'cancelImg' : '{!$baseUri}/js/uploadify/cancel.png',
'folder' : '{!$baseUri}/temp/upload',
'multi' : true,
'scriptData': {'imgUpSID':'{!session_id()}'},
'onAllComplete' : function(event,data)
{
window.location = '{!$backLink}';
}
});
});
// ]]>
</script>