4

我想在appengine-django中上傳文檔。 使用純django代碼[使用python manage.py runsever]成功上傳文檔。 但是,當我試圖運行使用AppEngine上項目它給了我錯誤的Django,造成Django中的文件上傳modelForm

[Errno 30] Read-only file system: u'/home/nishant/workspace1/problemdemo/uploaded_files/1372313114_43_nishant26062013.zip' 

此錯誤的原因Developers have read-only access to the filesystem on App Engine.

是否有另一種方式來上傳文件到Google雲SQL?

這裏是我的代碼,

models.py

from django.db import models 
import time 

# Create your models here. 

def get_upload_file_name(instance,filename): 
    return "uploaded_files/%s_%s" % (str(time.time()).replace('.','_'),filename) 


class Candidate(models.Model): 
    title=models.CharField(max_length=20) 
    resume=models.FileField(upload_to=get_upload_file_name) 

    def __unicode__(self): 
     return self.title 

forms.py

from django import forms 
from actualproblem.models import Candidate 

class TestForm(forms.ModelForm): 

    class Meta: 

     model=Candidate 

     fields=('title','resume',) 

views.py

# Create your views here. 
from django.shortcuts import render 
from actualproblem.forms import TestForm 

def sampletest(request): 


    if request.method=='POST':   
     form = TestForm(request.POST,request.FILES) 
     if form.is_valid(): 
      form.save() 

    else: 
     form=TestForm() 


    return render(request,'profile.html',{'form':form}) 

如何將documetns上傳到Google雲端SQL?

+0

您可以在數據庫中使用BLOB字段 –

+0

@ J.Ghyllebert對不起,在django中沒有像BLOB這樣的字段。 – fledgling

+0

看看提供的答案[這裏](http://stackoverflow.com/questions/4915397/django-blob-model-field) –

回答

1

您可以通過使用Uploadcare來解決難題,它可以幫助您在很少或根本無法控制主機文件系統(GAE,heroku,共享主機或其他)的情況下。上傳的文件將存儲在Uploadcare中,您將在數據庫中存儲文件UUID或URL。

有Django的包:pyuploadcare

披露:我的Uploadcare開發商之一,我張貼這不是無恥地促進了服務,但因爲它的建立是爲了解決這樣的一個案例。