Файловое хранилище.Upload

Материал из Hivext Wiki

Перейти к: навигация, поиск

Содержание

Метод Upload

Общая информация

Параметр Значение
Описание Загрузка данных в файловое хранилище.
Адрес метода POST http://api.hivext.ru/1.0/storage/uploader/rest/upload
Кодирование multipart/form-data
Метод сервиса Файловое хранилище

Параметры

Имя параметра Тип Описание
Входящие параметры
appid string [*] Идентификатор приложения.
fid string [*] Уникальный идентификатор загружаемого файла. Используется в дальнейшем для получения информации о процессе загрузки файла. Идентификатор генерируется на клиенте (например, случайное число).
file object [*] Файловый объект или инпут.
redirect string Адрес на который произойдет редирект и отправится ответ метода после загрузки файла.
Возвращаемые параметры
result int Коды ошибок
301 Неверный ответ хранилища
302 Ошибка подключения к хранилищу
303 Ошибка ввода-вывода (записи, чтения)
304 Хранилище недоступно
401 Размер файла превысил лимит в 3 Мб
402 Файл запрещен для загрузки
403 Файл не указан
error string Описание ошибки, если она произошла.
file string Путь к загруженному файлу (по ссылке производится загрузка файла). Если по ссылке требуется отобразить результат в браузере (для просмотра изображений, текстовых документов, и прочих, которые может отображать браузер), то к ней добавляется параметр /view.

Примеры

JavaScript

Асинхронный вызов метода Upload

<!-- Подключение ядра -->
<script type="text/javascript" src="http://code.hivext.ru/frameworks/js/core.js" />
<!-- Подключение клиента -->
<script type="text/javascript" src="http://api.hivext.ru/1.0/storage/uploader.js" />

<input id="MyFile" type="file" />

var sUid = parseInt(Math.random()*100000); // Любой идентификатор.

var oFile = document.getElementById("MyFile"); // Файловый объект.

oFile.onchange = function() {

    // Асинхронный вызов.
    Storage.Uploader.Upload(sAppid, sUid, oFile, function(oResponse) {
        if(oResponse.result == 0) { // Ошибок нет.
            // Показываем путь к файлу.
            alert(oResponse.file);
        } else {
            // Показываем ошибку.
            alert(oResponse.error);
        }
    });

}
Асинхронный вызов метода Upload в элементе

<!-- Подключение ядра -->
<script type="text/javascript" src="http://code.hivext.ru/frameworks/js/core.js" />

<!-- Подключение клиента -->
<script type="text/javascript" src="http://api.hivext.ru/1.0/storage/uploader.js" />

<!-- Асинхронный вызов метода в элементе -->
<input type="file" onchange="Storage.Uploader.Upload("APPLICATION_ID", parseInt(Math.random()*100000), this, function(oResponse) { alert(oResponse.file); });" />

Java SE

Синхронный и асинхронный вызовы метода Upload

import java.io.File;
import com.hivext.api.Response;
import com.hivext.api.Callback;
import com.hivext.api.storage.Uploader;

String sUid = Math.random() * 100000 + ""; // Любой идентификатор.

File oFile = new File("MyFile.txt"); // Создаем файловый объект.

// Синхронный вызов.
Response oResponse = Uploader.Upload(sUid, oFile);
if(oResponse.result == 0) { // Ошибок нет.
    // Показываем путь к файлу.
    System.out.println(oResponse.file);
} else {
    // Показываем ошибку.
    System.out.println("Error: " + oResponse.error);
}

// Асинхронный вызов.
Uploader.Upload(sUid, oFile, new Callback() {
    @Override
    public void fire(Response oResponse) {
        if(oResponse.result == 0) { // Ошибок нет.
            // Показываем путь к файлу.
            System.out.println(oResponse.file);
        } else {
            // Показываем ошибку.
            System.out.println("Error: " + oResponse.error);
        }
    }
});

Java ME

Синхронный и асинхронный вызовы метода Upload

import javax.microedition.io.Connector;
import javax.microedition.io.file.FileConnection;
import com.hivext.api.Response;
import com.hivext.api.Callback;
import com.hivext.api.storage.Uploader;

String sUid = Math.random() * 100000 + ""; // Любой идентификатор.

FileConnection oFile = (FileConnection) Connector.open("MyFile.txt", Connector.READ); // Создаем файловый объект.

// Синхронный вызов.
Response oResponse = Uploader.Upload(sUid, oFile);
if(oResponse.result == 0) { // Ошибок нет.
    // Показываем путь к файлу.
    System.out.println(oResponse.file);
} else {
    // Показываем ошибку.
    System.out.println("Error: " + oResponse.error);
}

// Асинхронный вызов.
Uploader.Upload(sUid, oFile, new Callback() {
    public void fire(Response oResponse) {
        if(oResponse.result == 0) { // Ошибок нет.
            // Показываем путь к файлу.
            System.out.println(oResponse.file);
        } else {
            // Показываем ошибку.
            System.out.println("Error: " + oResponse.error);
        }
    }
});