HTML

    
    

    (可多選)
    




      JAVASCRIPT

          function NewFileUploader($buttom){
              var buttom_id = $buttom.attr('id');
              var table_name = $buttom.attr('table_name');
      
              var uploader = new plupload.Uploader({
                  runtimes: 'html5',
                  browse_button: buttom_id,
                  url: '',
                  multi_selection: true,
                  max_file_size : '100mb',
                  multipart: true,
                  headers: {
                      'X-Requested-With': 'XMLHttpRequest',
                  },
                  multipart_params : {
                      csrfmiddlewaretoken: CSRFMIDDLEWARETOKEN,
                      table_name: table_name
                  },
                  init:{
                      FilesAdded:function(up, files){
                          var file_num = files.length;
                          if (confirm('確定上傳這' + file_num + '個檔案?,按下確定後,上傳進度將顯示在下方,尚未結束前請勿關閉視窗!!!')){
                              for (i=0;i' + files[i].name + ',上傳進度:
      '); } up.start(); }else{ return false } }, FileUploaded:function(up, file, res){ var json = $.parseJSON(res.response); var data = { 'id': json["id"], 'name': json['name'] }; var $col = $('#li_file').tmpl(data).appendTo($('#upload_files')); $('#li_' + file.id).remove(); $(".deleteRow").unbind('click'); $(".deleteRow").click(deleteRow); }, UploadProgress:function(up, file) { $('#file_percent_' + file.id).attr('style', 'width: ' + file.percent + "%"); $('#file_percent_' + file.id).html(file.percent + "%"); } } }); uploader.init(); } $(document).ready(function(){ $(".uploader").each(function(){ var $obj = $(this); NewFileUploader($obj); }); });




      PYTHON

      
      #上傳檔案的處理
      @login_required
      def new_file_upload(R):
          data = R.POST
      
          table_name = data.get('table_name', '')
          row_id = data.get('row_id', '')
      
          f = R.FILES.get('file', None)
          full_name = f.name.split(".")
          ext = full_name[-1]
          full_name.remove(full_name[-1])
          name = "".join(full_name)
      
          if table_name == 'QuestionFile':
              new = QuestionFile(
                  name = name,
              )
              if question_id:
                  new.question = Question.objects.get(id=question_id)
              new.save()
              getattr(new, 'file').save('%s.%s'%(new.id, ext), f)
              new.save()
      
          return HttpResponse(json.dumps({'status': True, 'id': new.id, 'name': new.name, 'rExt': ext}))
      
      
      #下載檔案專用
      @login_required
      def download_question_file(R, **kw):
          file_id = kw['file_id']
      
          row = QuestionFile.objects.get(id=file_id)
      
          f = open(os.path.join(ROOT, row.file.name), 'rb')
          content = f.read()
          response = HttpResponse(mimetype='application/' + row.rExt())
          response['Content-Type'] = ('application/' + row.rExt())
          file_name = row.name.replace(" ", "") + '.' + row.rExt()
          response['Content-Disposition'] = ('attachment; filename='+ file_name).encode('cp950')
          response.write(content)
          return response
      
      
      arrow
      arrow
        全站熱搜

        嘎抓強 發表在 痞客邦 留言(0) 人氣()