/* * Provided by CSTI Consulting * Following GNU LESSER GENERAL PUBLIC LICENSE * You may obtain more details at * * http://www.csticonsulting.com * Copyright (c) 2006-2010 Consultation CS-TI inc. * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ package com.salesmanager.central.util.upload; import javax.servlet.http.HttpServletRequest; /** * Created by IntelliJ IDEA. * * @author Original : plosson on 06-janv.-2006 15:05:44 - Last modified by * $Author: vde $ on $Date: 2004/11/26 22:43:57 $ * @version 1.0 - Rev. $Revision: 1.2 $ */ public class UploadListener implements OutputStreamListener { private HttpServletRequest request; private long delay = 0; private long startTime = 0; private int totalToRead = 0; private int totalBytesRead = 0; private int totalFiles = -1; public UploadListener(HttpServletRequest request, long debugDelay) { this.request = request; this.delay = debugDelay; totalToRead = request.getContentLength(); this.startTime = System.currentTimeMillis(); } public void start() { totalFiles++; updateUploadInfo("start"); } public void bytesRead(int bytesRead) { totalBytesRead = totalBytesRead + bytesRead; updateUploadInfo("progress"); try { Thread.sleep(delay); } catch (InterruptedException e) { e.printStackTrace(); } } public void error(String message) { updateUploadInfo("error"); } public void done() { updateUploadInfo("done"); } private long getDelta() { return (System.currentTimeMillis() - startTime) / 1000; } private void updateUploadInfo(String status) { long delta = (System.currentTimeMillis() - startTime) / 1000; request.getSession().setAttribute( "uploadInfo", new UploadInfo(totalFiles, totalToRead, totalBytesRead, delta, status)); } }