# `@gradio/upload` ```html ``` Upload ```javascript export let filetype: string | null = null; export let dragging = false; export let boundedheight = true; export let center = true; export let flex = true; export let file_count = "single"; export let disable_click = false; export let root: string; export let hidden = false; ``` ModifyUpload ```javascript export let editable = false; export let undoable = false; export let absolute = true; export let i18n: I18nFormatter; ``` ```javascript export function normalise_file( file: FileData | null, server_url: string, proxy_url: string | null ): FileData | null; export function normalise_file( file: FileData[] | null, server_url: string, proxy_url: string | null ): FileData[] | null; export function normalise_file( file: FileData[] | FileData | null, server_url: string, // root: string, proxy_url: string | null // root_url: string | null ): FileData[] | FileData | null; export function normalise_file( file: FileData[] | FileData | null, server_url: string, // root: string, proxy_url: string | null // root_url: string | null ): FileData[] | FileData | null; export function get_fetchable_url_or_file( path: string | null, server_url: string, proxy_url: string | null ): string export async function upload( file_data: FileData[], root: string, upload_fn: typeof upload_files = upload_files ): Promise<(FileData | null)[] | null> export async function prepare_files( files: File[], is_stream?: boolean ): Promise { return files.map( (f, i) => new FileData({ path: f.name, orig_name: f.name, blob: f, size: f.size, mime_type: f.type, is_stream }) ); } ```