Пример #1
0
def upload(request, layer):
    # Handle file upload
    response = HttpResponse('Error - Upload request not POST')
    if request.method == 'POST':
        workspace, datastore = get_layer_info(request, layer)

        if workspace and datastore:
            filename = 'workspaces/{}/{}/{}/schema.xsd'.format(
                workspace, datastore, layer)
            filename_absolute = safe_join(get_gsschema_dir(), filename)
            print filename_absolute
            # if there is already and xsd file there, back it up first.
            backup_millis = int(round(time.time() * 1000))
            try:
                os.rename(filename_absolute,
                          '{}_{}'.format(filename_absolute, backup_millis))
            except OSError:
                pass

            file_storage = FileSystemStorage(location=get_gsschema_dir())
            file_storage.file_permissions_mode = 0644
            uploaded_file = request.FILES['file']
            try:
                etree.parse(uploaded_file)
            except etree.XMLSyntaxError as error:
                response = HttpResponse('Error - XML not valid: {}'.format(
                    error.message))
            else:
                file_storage.save(filename, uploaded_file)
                response = HttpResponse(
                    'upload completed for layer: {}'.format(layer))

    return response
Пример #2
0
 def save(self):
     fileStorage=FileSystemStorage(location=BASE_FOTOS)
     fileStorage.file_permissions_mode = 0644
     if fileStorage.exists(self.fotos.name):
             raise ValidationError('El nombre o la foto ya existe.')
     elif self.pk is not None:
         foto_original = Fotos.objects.get(pk=self.pk)
         if foto_original.fotos != self.fotos:
             os.remove(os.path.join(settings.MEDIA_ROOT, foto_original.fotos.name))
             super(Fotos, self).save()
     super(Fotos, self).save()