0

コードの多くのユーザーによると、これはおそらく簡単なことでしたdjango ajax uploader.django application

django ajax アップローダーをインストール し、インストール済みのアプリに追加しましSTATIC_URLた。css and jsMEDIA_ROOTMEDIA_URL

ドキュメントのステップ4で述べたように、タグ内に匿名関数も含めました-アクションを次のように変更します<script>start.html{% url ajax_upload %}

私のstart.htmlページでは、ファイルを選択するとサーバー上の場所にファイルをアップロードするようなファイル入力要素が必要です。

だから私はこのようなhtmlを作成しました

<form enctype="multipart/form-data" method="post" action="{% url upload_without_ajax %}"> {% csrf_token %}
<input type="file" name="fselect" id="file-uploader"> </input>
</form>

start.html はviews.startメソッドによってレンダリングされます

views.py -

def start(request, template_name):
    csrf_token = get_token(request)
    reqctx = RequestContext(request,{'csrf_token': csrf_token })
    return render_to_response(template_name,reqctx)

import_uploader = AjaxFileUploader()

これが私の質問です。

1.ファイルのアップロードを引き起こすのに十分な入力要素に与えid=file-uploaderていますか?または$('#file-uploader').change(、JavaScriptで呼び出す必要がありますか?

2.選択したファイルをフォルダーに書き込むだけで済みMEDIA_ROOT/uploadsます。これは、デフォルトで行われていると思いますLocalUploadBackend。urls.py でviews.import_uploader、 を URL ajax_upload にマッピングしました

url(r'^ajax_upload$', 'views.import_uploader',name='ajax_upload'),

それでも、ファイルのアップロードは行われません..

github サイトの指定されたコードからはあまり理解できませんでした。

4

2 に答える 2

2

html以外はすべて問題ないようです。ただし、2.6+ は django-ajax-uploader と互換性がないため、python 2.7 があるかどうかを確認する必要があります。(またはその逆!)

Python 2.7 を使用する場合は、https://github.com/lazerscience/django-ajax-uploaderをクローンする必要があります。

git clone https://github.com/lazerscience/django-ajax-uploader
cd django-ajax-uploader
python setup.py install

これで十分です。(リポジトリの例のように html を変更することを忘れないでください。はい #file-upload は jQuery で単独で動作します。

于 2013-05-13T14:55:17.767 に答える
0

現在、django-ajax ファイルのアップロードにも取り組んでいます。しかし、デフォルトを配置することで、私のテンプレート部分は正常に機能しています。

file-uploader は、実際の入力ファイル タイプではなく、div の ID です。私が fileuploader.js で読んだことから、このスクリプトは標準的なスタイルでファイル アップロード要素を作成します。私は js の第一人者ではありませんが、fileuploader.js 内でカスタマイズできると思いますか??

以下の私のjs関数では、名前と値であり、これを指している新しいアイテムを追加しようとすることにより、インスタンスのpkをajaxのパラメーターとして渡そうとしてparams: {..}action: "{% url ajax_upload %}",ますurl(r'^ajax-upload$', 'yourapp.views.import_uploader', name="ajax_upload"),

私はこれが助けになるかどうかを願っています..私に反対票を投じてください:[

<!doctype html>
<head>
    <!--<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.6.1/jquery.min.js" ></script>-->
    <script src="{{ STATIC_URL }}js/jquery-1.9.1.js" ></script>
    <script src="{{ STATIC_URL }}ajaxuploader/js/fileuploader.js" ></script>
    <link href="{{ STATIC_URL }}ajaxuploader/css/fileuploader.css" media="screen" rel="stylesheet" type="text/css" />
    <script>

        function createUploader(pk){            
            var uploader = new qq.FileUploader({
                element: $('#file-uploader')[0],
                action: "{% url ajax_upload %}",
                debug: true,
                multiple: false,                    
                onComplete : function(id, fileName, responseJSON) {
                if(responseJSON.success) {
                    alert("success!");
                } else {
                    alert("upload failed!");
                }                    
                },                    
                params: {
                'csrf_token': '{{ csrf_token }}',
                'csrf_name': 'csrfmiddlewaretoken',
                'csrf_xname': 'X-CSRFToken',
                'pk': pk,
                },           
            });
        };

        $(document).ready(function(){
            createUploader({{instance.id}});
        });          
    </script>
</head>
<body>    
    <div id="file-uploader">        
    </div>   
</body>
</html>
于 2013-06-30T05:58:18.473 に答える