def api_uploadFile(simulation_type, simulation_id, file_type): f = flask.request.files['file'] filename = werkzeug.secure_filename(f.filename) p = _lib_filepath(simulation_type, filename, file_type) err = None file_list = None if p.check(): confirm = flask.request.form['confirm'] if 'confirm' in flask.request.form else None if not confirm: search_name = _lib_filename(simulation_type, filename, file_type) file_list = _simulations_using_file(simulation_type, file_type, search_name, ignore_sim_id=simulation_id) if file_list: err = 'File is in use in other simulations. Please confirm you would like to replace the file for all simulations.' if not err: pkio.mkdir_parent_only(p) f.save(str(p)) template = sirepo.template.import_module(simulation_type) if hasattr(template, 'validate_file'): err = template.validate_file(file_type, str(p)) if err: pkio.unchecked_remove(p) if err: return http_reply.gen_json({ 'error': err, 'filename': filename, 'fileList': file_list, 'fileType': file_type, 'simulationId': simulation_id, }) return http_reply.gen_json({ 'filename': filename, 'fileType': file_type, 'simulationId': simulation_id, })
def app_upload_file(simulation_type, simulation_id, file_type): f = flask.request.files['file'] lib = simulation_db.simulation_lib_dir(simulation_type) template = sirepo.template.import_module(simulation_type) filename = werkzeug.secure_filename(f.filename) if simulation_type == 'srw': p = lib.join(filename) else: p = lib.join(werkzeug.secure_filename('{}.{}'.format(file_type, filename))) err = None if p.check(): err = 'file exists: {}'.format(filename) if not err: f.save(str(p)) err = template.validate_file(file_type, str(p)) if err: pkio.unchecked_remove(p) if err: return _json_response({ 'error': err, 'filename': filename, 'fileType': file_type, 'simulationId': simulation_id, }) return _json_response({ 'filename': filename, 'fileType': file_type, 'simulationId': simulation_id, })