43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			43 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| from flask import Blueprint, request, jsonify, session
 | |
| import os
 | |
| import logging
 | |
| 
 | |
| upload_bp = Blueprint('upload_bp', __name__)
 | |
| 
 | |
| 
 | |
| @upload_bp.route('/upload/<cdmtype>', methods=['POST'])
 | |
| def upload(cdmtype):
 | |
|     try:
 | |
|         username = session.get('username')
 | |
|         if not username:
 | |
|             return jsonify({'message': 'False', 'error': 'No username in session'}), 400
 | |
| 
 | |
|         # Validate CDM type
 | |
|         if cdmtype not in ['PR', 'WV']:
 | |
|             return jsonify({'message': 'False', 'error': 'Invalid CDM type'}), 400
 | |
| 
 | |
|         # Set up user directory paths
 | |
|         base_path = os.path.join(os.getcwd(), 'configs', 'CDMs', username)
 | |
|         pr_path = os.path.join(base_path, 'PR')
 | |
|         wv_path = os.path.join(base_path, 'WV')
 | |
| 
 | |
|         # Create necessary directories if they don't exist
 | |
|         os.makedirs(pr_path, exist_ok=True)
 | |
|         os.makedirs(wv_path, exist_ok=True)
 | |
| 
 | |
|         # Get uploaded file
 | |
|         uploaded_file = request.files.get('file')
 | |
|         if not uploaded_file:
 | |
|             return jsonify({'message': 'False', 'error': 'No file provided'}), 400
 | |
| 
 | |
|         # Determine correct save path based on cdmtype
 | |
|         filename = uploaded_file.filename
 | |
|         save_path = os.path.join(pr_path if cdmtype == 'PR' else wv_path, filename)
 | |
|         uploaded_file.save(save_path)
 | |
| 
 | |
|         return jsonify({'message': 'Success', 'file_saved_to': save_path})
 | |
| 
 | |
|     except Exception as e:
 | |
|         logging.exception("Upload failed")
 | |
|         return jsonify({'message': 'False', 'error': 'Server error'}), 500
 |