⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filedata.java

📁 [linux.rar] - 嵌入式linux开发教程
💻 JAVA
字号:
//
// $Id: FileData.java 95 2007-05-02 03:27:05Z
// /C=DE/ST=Baden-Wuerttemberg/O=ISDN4Linux/OU=Fritz
// Elfert/CN=svn-felfert@isdn4linux.de/emailAddress=fritz@fritz-elfert.de $
//
// jupload - A file upload applet.
// Copyright 2007 The JUpload Team
//
// Created: 2006-11-20
// Creator: etienne_sf
// Last modified: $Date: 2008-09-13 23:01:48 +0200 (sam., 13 sept. 2008) $
//
// This program is free software; you can redistribute it and/or modify it under
// the terms of the GNU General Public License as published by the Free Software
// Foundation; either version 2 of the License, or (at your option) any later
// version. This program is distributed in the hope that it will be useful, but
// WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
// FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
// details. You should have received a copy of the GNU General Public License
// along with this program; if not, write to the Free Software Foundation, Inc.,
// 675 Mass Ave, Cambridge, MA 02139, USA.

package wjhk.jupload2.filedata;

import java.io.File;
import java.io.InputStream;
import java.util.Date;

import wjhk.jupload2.exception.JUploadException;
import wjhk.jupload2.exception.JUploadIOException;
import wjhk.jupload2.policies.UploadPolicy;
import wjhk.jupload2.upload.FileUploadThread;
import wjhk.jupload2.upload.helper.ByteArrayEncoder;

/**
 * This class contains all data and methods for a file to upload. The current
 * {@link wjhk.jupload2.policies.UploadPolicy} contains the necessary parameters
 * to personalize the way files must be handled. <BR>
 * The JUpload package provides a default implementation of this class in
 * {@link DefaultFileData}. This default implementation contains all necessary
 * methods to allow upload. You can override it to add new file behaviour. For
 * instance, you could add a XMLFileData, that would check that XML is valid
 * before upload. See the <a href="package-summary.html">package summary</a>
 * for more details about that. <BR>
 * This class is the interface that all FileData must implement. The
 * {@link DefaultFileData} class contains the default implementation for this
 * interface. The {@link  PictureFileData} contains another implementation of
 * this interface, adapted to manage pictures (rotation, resizing...). <BR>
 * The instance of FileData is created by the
 * {@link UploadPolicy#createFileData(File, File)} method. This method can be
 * overrided in a new upoad policy, to create an instance of another FileData.
 * See {@link  PictureFileData} for an example about FileData customization.
 * 
 * @author etienne_sf
 */

public interface FileData {

    /**
     * Called during the upload, by the {@link FileUploadThread}. The FileData
     * instance should then call the
     * {@link ByteArrayEncoder#appendTextProperty(String, String)} method to add
     * each file property to the current upload.
     * 
     * @param bae The byte encoder, where the properties must be added
     * @throws JUploadIOException Encapsulation of the IOException, if any would
     *             occurs.
     * @see ByteArrayEncoder#appendTextProperty(String, String)
     */
    public void appendFileProperties(ByteArrayEncoder bae)
            throws JUploadIOException;

    /**
     * Prepare the fileData to upload. For instance, picture data can be resized
     * before upload (see {@link PictureFileData}. This method is called before
     * the upload of this file.
     * 
     * @see FileUploadThread
     * @throws JUploadException Encapsulation of the Exception, if any would
     *             occurs.
     */
    public void beforeUpload() throws JUploadException;

    /**
     * Get size of upload, which may be different from th actual file length.
     * 
     * @return The length of upload. In this class, this is the size of the
     *         file, as it isn't transformed for upload. This size may change if
     *         encoding is necessary (needs a new FileData class), or if picture
     *         is to be resized or rotated.
     * @throws JUploadException Encapsulation of the Exception, if any would
     *             occurs.
     * @see PictureFileData
     */
    public long getUploadLength() throws JUploadException;

    /**
     * This function is called after upload, whether it is successful or not. It
     * allows fileData to free any resssource created for the upload. For
     * instance, {@link PictureFileData#afterUpload()} removes the temporary
     * file, if any was created.
     */
    public void afterUpload();

    /**
     * This function creates an InputStream from this file. The
     * {@link FileUploadThread} class then reads bytes from it and transfers
     * them to the webserver. The caller is responsible for closing this stream.
     * 
     * @throws JUploadException Encapsulation of the Exception, if any would
     *             occurs.
     * @return An InputStream, representing this instance.
     */
    public InputStream getInputStream() throws JUploadException;

    /**
     * Get the original filename. This is the name of the file, into the local
     * hardrive
     * 
     * @return The original filename
     */
    public String getFileName();

    /**
     * @return The extension for the original file.
     */
    public String getFileExtension();

    /**
     * @return The length of the original file.
     */
    public long getFileLength();

    /**
     * @return The original file date.
     */
    public Date getLastModified();

    /**
     * Get the directory of the file.
     * 
     * @return The directory where this file is stored.
     */
    public String getDirectory();

    /**
     * This function return the FileData content type.
     * 
     * @return The mimeType for the file.
     */
    public String getMimeType();

    /**
     * Indicate if this file can be read. Take care of the File.canRead()
     * methods, that seems to be wrong from time to time.
     * 
     * @return indicates whether the file can be read or not.
     */
    public boolean canRead();

    /**
     * Standard getter, for the file described by the FileData instance.
     * 
     * @return the File instance associated with this row.
     */
    public File getFile();

    /**
     * Retrieves the path of this file relative to it's root dir
     * 
     * @return This instance's relative path or an empty string if it was not
     *         created using a root parameter.
     */
    public String getRelativeDir();
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -