def post(self, upload_token_id): if not KalturaAPI.enabled(): abort(400, title="File Not Uploaded", message="Please use a valid upload method to attach files. You are not able to upload with this method based on the current settings.") kaltura_media = KalturaAPI.complete_upload_for_token(upload_token_id) on_save_kaltura_file.send( self, event_name=on_save_kaltura_file.name, user=current_user, data={'upload_token_id': upload_token_id}) try: db_file = File( user_id=current_user.id, name='', alias=kaltura_media.file_name, kaltura_media=kaltura_media ) db.session.add(db_file) db.session.commit() # use uuid generated by file model for name name = db_file.uuid + '.' + kaltura_media.extension # update file record with name db_file.name = name db.session.commit() except Exception as e: db.session.rollback() raise e return {'file': marshal(db_file, dataformat.get_file())}
def post(self): uploaded_file = request.files.get('file') if not uploaded_file: abort( 400, title="File Not Uploaded", message= "Sorry, no file was found to upload. Please try uploading again." ) elif not allowed_file( uploaded_file.filename, current_app.config['ATTACHMENT_ALLOWED_EXTENSIONS']): extensions = [ extension.upper() for extension in list( current_app.config['ATTACHMENT_ALLOWED_EXTENSIONS']) ] extensions.sort() extensions = ", ".join(extensions) abort( 400, title="File Not Uploaded", message= "Please try again with an approved file type, which includes: " + extensions + ".") on_save_file.send(self, event_name=on_save_file.name, user=current_user, data={'file': uploaded_file.filename}) try: db_file = File(user_id=current_user.id, name='', alias=uploaded_file.filename) db.session.add(db_file) db.session.commit() # use uuid generated by file model for name name = db_file.uuid + '.' + uploaded_file.filename.lower().rsplit( '.', 1)[1] # create new file with name full_path = os.path.join( current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name) uploaded_file.save(full_path) current_app.logger.debug("Saved attachment {}/{}".format( current_app.config['ATTACHMENT_UPLOAD_FOLDER'], name)) # update file record with name db_file.name = name db.session.commit() except Exception as e: db.session.rollback() raise e return {'file': marshal(db_file, dataformat.get_file())}