Какую платформу вы используете?
PHP? .СЕТЬ? Рубин
Не зная специфики, давайте рассмотрим пример PHP JQuery в общем, чтобы увидеть, что происходит
https://github.com/blueimp/jQuery-File-Upload/blob/master/php/index.php
Вы видите в этом файле
$upload_handler = new UploadHandler();
header('Pragma: no-cache');
header('Cache-Control: private, no-cache');
header('Content-Disposition: inline; filename="files.json"');
header('X-Content-Type-Options: nosniff');
header('Access-Control-Allow-Origin: *');
header('Access-Control-Allow-Methods: OPTIONS, HEAD, GET, POST, PUT, DELETE');
header('Access-Control-Allow-Headers: X-File-Name, X-File-Type, X-File-Size');
switch ($_SERVER['REQUEST_METHOD']) {
case 'OPTIONS':
break;
case 'HEAD':
case 'GET':
$upload_handler->get();
break;
case 'POST':
$upload_handler->post();
break;
case 'DELETE':
$upload_handler->delete();
break;
default:
header('HTTP/1.1 405 Method Not Allowed');
}
Посмотрите на случай 'POST'
Содержит следующее
$upload_handler->post();
Итак, если файл опубликован, давайте посмотрим на процедуру post [Это просто предназначено для обработки вещей в стиле RESTFul, как кажется ... правильные глаголы, делающие правильные вещи, GET получает файл, Delete delete is file, POST Posts файл.]
Итак, давайте теперь посмотрим на эти следующие важные биты
public function post() {
if (isset($_REQUEST['_method']) && $_REQUEST['_method'] === 'DELETE') {
return $this->delete();
}
$upload = isset($_FILES[$this->options['param_name']]) ?
$_FILES[$this->options['param_name']] : null;
$info = array();
if ($upload && is_array($upload['tmp_name'])) {
foreach ($upload['tmp_name'] as $index => $value) {
$info[] = $this->handle_file_upload(
$upload['tmp_name'][$index],
isset($_SERVER['HTTP_X_FILE_NAME']) ?
$_SERVER['HTTP_X_FILE_NAME'] : $upload['name'][$index],
isset($_SERVER['HTTP_X_FILE_SIZE']) ?
$_SERVER['HTTP_X_FILE_SIZE'] : $upload['size'][$index],
isset($_SERVER['HTTP_X_FILE_TYPE']) ?
$_SERVER['HTTP_X_FILE_TYPE'] : $upload['type'][$index],
$upload['error'][$index]
);
}
} elseif ($upload || isset($_SERVER['HTTP_X_FILE_NAME'])) {
$info[] = $this->handle_file_upload(
isset($upload['tmp_name']) ? $upload['tmp_name'] : null,
isset($_SERVER['HTTP_X_FILE_NAME']) ?
$_SERVER['HTTP_X_FILE_NAME'] : (isset($upload['name']) ?
isset($upload['name']) : null),
isset($_SERVER['HTTP_X_FILE_SIZE']) ?
$_SERVER['HTTP_X_FILE_SIZE'] : (isset($upload['size']) ?
isset($upload['size']) : null),
isset($_SERVER['HTTP_X_FILE_TYPE']) ?
$_SERVER['HTTP_X_FILE_TYPE'] : (isset($upload['type']) ?
isset($upload['type']) : null),
isset($upload['error']) ? $upload['error'] : null
);
}
Самая важная часть для вас здесь
$this->handle_file_upload(
$upload['tmp_name'][$index],
isset($_SERVER['HTTP_X_FILE_NAME']) ?
$_SERVER['HTTP_X_FILE_NAME'] : $upload['name'][$index],
isset($_SERVER['HTTP_X_FILE_SIZE']) ?
$_SERVER['HTTP_X_FILE_SIZE'] : $upload['size'][$index],
isset($_SERVER['HTTP_X_FILE_TYPE']) ?
$_SERVER['HTTP_X_FILE_TYPE'] : $upload['type'][$index],
$upload['error'][$index]
);
Это вызывает handle_file_upload. Теперь обратите внимание, как все это работает.
Файл загружается, и он определяет, что глагол был, получить, опубликовать, удалить. Ему все равно, есть база данных или нет, важно только, что мне делать дальше. Это цифры, чтобы позвонить по почте
Отправьте тогда цифры, эй, мне нужно вызвать handle_file_upload. Теперь handle_file_upload для вас в некотором смысле является черным ящиком, вы можете просто заменить его на другой, который обрабатывает его с помощью некоторой логики базы данных.
Если вы посмотрите на функцию handle_file_upload, вы увидите
приватная функция handle_file_upload ($ uploaded_file, $ name, $ size, $ type, $ error) {
Итак, возьмите эти параметры и используйте их, чтобы сделать запрос к базе данных и таким образом сохранить ваши файлы. В основном просто переписать handle_file_upload
В любом случае, надеюсь, это поможет.