0

こんにちは、kohana 2.3.4 で uploadify スクリプトを実装しようとしています。uploadify スクリプトをルート ディレクトリに配置し、それをビュー ファイルに指定すると機能します。しかし、スクリプトをコントローラーに向けると、http エラーが返されます。以下はjsスクリプトです。

 <script type="text/javascript">
// <![CDATA[
$(document).ready(function() {
$('#file_upload').uploadify({
'uploader'  : '<?=url::base()?>uploadify/uploadify.swf',
'script'    : '<?=url::base()?>uploadify', /*Even tried     http://localhost/directory/uploadify*/
'cancelImg' : '<?=url::base()?>uploadify/cancel.png',
'folder'    : '<?=url::base().$directory?>',
'multi'       : true,
'removeCompleted' : false,
'auto'      : true
 });
 });
 // ]]>
</script>
4

1 に答える 1

0

受け取ったエラーはわかりませんが、ページに認証が必要で、コントローラーがユーザーを認証できない場合は、私の解決策に従うことができます。問題は、uploadifyがフラッシュを使用し、サーバーにCookieを送信しないというフラッシュのバグがあることです。

以下に示すように変更して動作させました。jsで(コハナの場合)

$('#file_upload').uploadify({
    uploader: base_url+"upload/image?sess=<?php Session::instance()->id(); ?>",
});

とプレーンphpで

$('#file_upload').uploadify({
    uploader: base_url+"upload/image?sess=<?php session_id();?>",
});

そして、セッションから認証を読み取りているときにkohanaコントローラーで、次のようにセッションを初期化します

  $sess_id = Arr::get($_GET,'sess',null);
  $sess = Session::instance(null,$sess_id);

またはプレーンphpで

session_name($_GET['sess']);
session_start();

将来、フラッシュのバグが修正された場合、これを行う必要はありません

于 2012-10-02T06:11:38.357 に答える