} catch (Exception e) { e.printStackTrace(); } } } } catch (FileUploadException e) { e.printStackTrace(); } } // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code."> /** * Handles the HTTP <code>GET</code> method. * @param request servlet request * @param response servlet response */ protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Handles the HTTP <code>POST</code> method. * @param request servlet request * @param response servlet response */ protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { processRequest(request, response); } /** * Returns a short description of the servlet. */ public String getServletInfo() { return "Short description"; } /** * 字符串内码转换 GB2312 to iso8859-1 */ public String charChange(String ori) { if (ori == null || ori.length() == 0) { return ""; } String newstr = ""; try { newstr = new String(ori.getBytes("ISO-8859-1")); return newstr; } catch (Exception e) { e.printStackTrace(); return newstr; } } /** * 修改XML文件中内容,并另存为一个新文件 * @param filename 修改对象文件 * @param newfilename 修改后另存为该文件
* @param title 声音文件描述
* @param mp3url 上传的文件存放的地址 * @return 返回操作结果, 0表失败, 1表成功 */ private int modiXMLFile(String filename,String newfilename,String title,String mp3url){ int returnValue = 0; try{ SAXReader saxReader = new SAXReader();
FileInputStream in = new FileInputStream(new File(filename)); Document document = saxReader.read(createReader(in,"utf-8")); /** 修改内容之一: 如果sound节点中sound参数的内容为true,则修改成false */ /** 先用xpath查找对象,将以前播放的声音文件标示置为false */
List list = document.selectNodes("/playlist/sound" ); Iterator iter = list.iterator(); while(iter.hasNext()){ Element ftpElement = (Element) iter.next(); if (ftpElement.attribute("isuse").getValue().equals("true")) { ftpElement.attribute("isuse").setValue("false"); } } /** 将新增的声音文件增加到xml描述文件 **/ list = document.selectNodes("/playlist"); iter = list.iterator(); if(iter.hasNext()){ Element ownerElement = (Element)iter.next(); Element soundElement = ownerElement.addElement("sound"); soundElement.addAttribute("title",title);
Error: No class registered for interface 'mx.styles::IStyleManager2'. at mx.core::Singleton$/getInstance()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Singleton.as:111] at mx.styles::StyleManager$/get impl()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\styles\StyleManager.as:78] at mx.styles::StyleManager$/http://www.adobe.com/2006/flex/mx/internal::initProtoChainRoots()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\styles\StyleManager.as:144] at Mp3Load/http://www.adobe.com/2006/flex/mx/internal::_Mp3Load_StylesInit()[D:\workspace\flextest\flex_src\Mp3Load.mxml:0] at Mp3Load()[D:\workspace\flextest\flex_src\Mp3Load.mxml:0] 是不是有什么文件没发给出来啊 打开报错
flex 写的很简单的啊,你直接拷贝过去用的?
可能是sdk版本不一样,把样式什么的都去掉
在Appliction里面<mx:Button click="uplode(event)" /> //点击上传 private function uplode(e:Event):void{ var win:Mp3Upload =Mp3Upload(PopUpManager.createPopUp(this,Mp3Upload,true)); PopUpManager.centerPopUp(win); }
Mp3Load.mxml:<?xml version="1.0" encoding="utf-8"?>
<mx:TitleWindow xmlns:mx="http://www.adobe.com/2006/mxml" fontSize="12"
borderColor="#000000" headerHeight="25" color="#ffffff" creationComplete="init();"
showCloseButton="true" close="closewindow()"
title="告警声音文件上传" backgroundAlpha="0.50" backgroundColor="#000000"
verticalScrollPolicy="off" horizontalScrollPolicy="off">
<mx:Canvas xmlns:mx="http://www.adobe.com/2006/mxml" width="400" height="300">
<mx:Script>
<![CDATA[
import mx.managers.PopUpManager;
import flash.net.FileReference;
import mx.controls.Alert;
import mx.events.CloseEvent;
import flash.events.*;private var file: FileReference;private function init(): void{
Security.allowDomain("*");
file = new FileReference();
file.addEventListener(ProgressEvent.PROGRESS, onProgress);
file.addEventListener(Event.SELECT, onSelect);
file.addEventListener(Event.COMPLETE, completeHandle);
}
private function closewindow():void{
PopUpManager.removePopUp(this);
}
private function completeHandle(event:Event):void{
Alert.show("上传成功!");
PopUpManager.removePopUp(this);
}private function upload(): void{
try{
var imageTypes:FileFilter = new FileFilter("Mp3 (*.mp3)", "*.mp3");
var allTypes:Array = new Array(imageTypes);
file.browse(allTypes);
// file.browse();
}catch(error:Error){
Alert.show("一次只能打开一个文件浏览!");
return;
}
}
private function onSelect(e: Event): void{
Alert.show("上传 " + file.name + " (共 "+Math.round(file.size)+" 字节)?",
"确认上传",
Alert.YES|Alert.NO,
null,
proceedWithUpload);
}private function onProgress(e: ProgressEvent): void{
lbProgress.text = " 已上传 " + e.bytesLoaded
+ " 字节,共 " + e.bytesTotal + " 字节";
var proc: uint = e.bytesLoaded / e.bytesTotal * 100;
bar.setProgress(proc, 100);
bar.label= "当前进度: " + " " + proc + "%";
}private function proceedWithUpload(e: CloseEvent): void{
if (e.detail == Alert.YES){
var request: URLRequest = new URLRequest("FileUploadMp3?fileName="+file.name);
try {
file.upload(request);
} catch (error:Error) {
trace("上传失败");
}
}
}
]]>
</mx:Script>
<mx:VBox width="100%" horizontalAlign="center">
<mx:Label id="lbProgress" text="上传"/>
<mx:ProgressBar id="bar" labelPlacement="bottom" themeColor="#F20D7A"
minimum="0" visible="true" maximum="100" label="当前进度: 0%"
direction="right" mode="manual" width="200"/><mx:Button label="上传文件" click="upload();"/>
</mx:VBox></mx:Canvas>
</mx:TitleWindow>
package com.zznode.gixpert.groupnorms.action;import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.FileWriter;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.UnsupportedEncodingException;
import java.util.Iterator;
import java.util.List;import javax.servlet.ServletException;
import javax.servlet.http.HttpServlet;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;import org.apache.commons.fileupload.FileItem;
import org.apache.commons.fileupload.FileUploadException;
import org.apache.commons.fileupload.disk.DiskFileItemFactory;
import org.apache.commons.fileupload.servlet.ServletFileUpload;
import org.dom4j.Attribute;
import org.dom4j.Document;
import org.dom4j.Element;
import org.dom4j.io.OutputFormat;
import org.dom4j.io.SAXReader;
import org.dom4j.io.XMLWriter;/**
*
* @author qixiaoran 转载于网络 http://blog.csdn.net/meteorlWJ/archive/2008/06/01/2450234.aspx
*/
public class FileUploadServlet extends HttpServlet { /**
* Processes requests for both HTTP <code>GET</code> and <code>POST</code> methods.
* @param request servlet request
* @param response servlet response
*/
// 限制文件的上传大小
private int maxPostSize = 100 * 1024 * 1024; public FileUploadServlet() {
super();
} public void destroy() {
super.destroy();
} protected void processRequest(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
response.setContentType("text/html;charset=UTF-8");
PrintWriter out = response.getWriter();
//得到传递过来的文件名
String filename = charChange(request.getParameter("fileName"));
String uname = System.currentTimeMillis()+".mp3"; //取一个随机数作为上传文件的文件名避开中文文件名乱码的可能性
//得到当前tomcat的路径
String tomcaturi = request.getSession().getServletContext().getRealPath("");
// 定义文件的上传路径
String uploadPath = "";
if(System.getProperty( "os.name").indexOf("Windows") != -1){
uploadPath = tomcaturi+"\\resources\\mv\\"+uname;
}else{
uploadPath = tomcaturi+"/resources/mv/"+uname;
}
//保存文件到服务器中
DiskFileItemFactory factory = new DiskFileItemFactory();
factory.setSizeThreshold(4096);
ServletFileUpload upload = new ServletFileUpload(factory);
upload.setSizeMax(maxPostSize);
try {
List fileItems = upload.parseRequest(request);
Iterator iter = fileItems.iterator();
while (iter.hasNext()) {
FileItem item = (FileItem) iter.next();
if (!item.isFormField()) {
try {
item.write(new File(uploadPath));
// item.write(new File(tomcaturi+"\\gixpertflex-sx\\resources\\mv\\"+filename));
if(System.getProperty( "os.name").indexOf("Windows") != -1){
modiXMLFile(tomcaturi+"\\flexconfig\\groupnorms\\playlist.xml", tomcaturi+"\\flexconfig\\groupnorms\\playlist.xml",
filename, "resources\\mv\\"+uname);
}else{
modiXMLFile(tomcaturi+"/flexconfig/groupnorms/playlist.xml", tomcaturi+"/flexconfig/groupnorms/playlist.xml",
filename, "resources/mv/"+uname);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
} catch (FileUploadException e) {
e.printStackTrace();
}
} // <editor-fold defaultstate="collapsed" desc="HttpServlet methods. Click on the + sign on the left to edit the code.">
/**
* Handles the HTTP <code>GET</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doGet(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
} /**
* Handles the HTTP <code>POST</code> method.
* @param request servlet request
* @param response servlet response
*/
protected void doPost(HttpServletRequest request, HttpServletResponse response)
throws ServletException, IOException {
processRequest(request, response);
} /**
* Returns a short description of the servlet.
*/
public String getServletInfo() {
return "Short description";
}
/**
* 字符串内码转换 GB2312 to iso8859-1
*/
public String charChange(String ori) {
if (ori == null || ori.length() == 0) {
return "";
}
String newstr = "";
try {
newstr = new String(ori.getBytes("ISO-8859-1"));
return newstr;
} catch (Exception e) {
e.printStackTrace();
return newstr;
}
}
/** * 修改XML文件中内容,并另存为一个新文件 * @param filename 修改对象文件 * @param newfilename 修改后另存为该文件
* @param title 声音文件描述
* @param mp3url 上传的文件存放的地址 * @return 返回操作结果, 0表失败, 1表成功 */
private int modiXMLFile(String filename,String newfilename,String title,String mp3url){ int returnValue = 0; try{ SAXReader saxReader = new SAXReader();
FileInputStream in = new FileInputStream(new File(filename)); Document document = saxReader.read(createReader(in,"utf-8")); /** 修改内容之一: 如果sound节点中sound参数的内容为true,则修改成false */ /** 先用xpath查找对象,将以前播放的声音文件标示置为false */
List list = document.selectNodes("/playlist/sound" ); Iterator iter = list.iterator(); while(iter.hasNext()){
Element ftpElement = (Element) iter.next();
if (ftpElement.attribute("isuse").getValue().equals("true")) {
ftpElement.attribute("isuse").setValue("false");
}
}
/** 将新增的声音文件增加到xml描述文件 **/
list = document.selectNodes("/playlist"); iter = list.iterator(); if(iter.hasNext()){ Element ownerElement = (Element)iter.next(); Element soundElement = ownerElement.addElement("sound"); soundElement.addAttribute("title",title);
mp3url = mp3url.replace("\\", "/");
soundElement.addAttribute("source",mp3url);
soundElement.addAttribute("isuse","true"); }
/** 将document中的内容写入文件中,另存为的文件 */
XMLWriter output = null; /** 格式化输出,类型IE浏览一样 */ OutputFormat format = OutputFormat.createPrettyPrint(); /** 指定XML字符集编码 */ format.setEncoding("utf-8");
output = new XMLWriter(new OutputStreamWriter(new java.io.FileOutputStream(filename),"UTF-8"),format); output.write(document); output.close(); output = new XMLWriter(new OutputStreamWriter(new java.io.FileOutputStream(newfilename),"UTF-8"),format); output.write(document); output.close(); /** 执行成功,需返回1 */ returnValue = 1;
}catch(Exception e){
e.printStackTrace();
}
return returnValue;
}
protected Reader createReader(InputStream inputStream, String encoding) {
try{
return new BufferedReader(
new InputStreamReader(inputStream,encoding)
);
}
catch(Exception uee){
uee.printStackTrace();
}
return null;
}
}
at mx.core::Singleton$/getInstance()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\core\Singleton.as:111]
at mx.styles::StyleManager$/get impl()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\styles\StyleManager.as:78]
at mx.styles::StyleManager$/http://www.adobe.com/2006/flex/mx/internal::initProtoChainRoots()[C:\autobuild\3.2.0\frameworks\projects\framework\src\mx\styles\StyleManager.as:144]
at Mp3Load/http://www.adobe.com/2006/flex/mx/internal::_Mp3Load_StylesInit()[D:\workspace\flextest\flex_src\Mp3Load.mxml:0]
at Mp3Load()[D:\workspace\flextest\flex_src\Mp3Load.mxml:0]
是不是有什么文件没发给出来啊 打开报错
//点击上传
private function uplode(e:Event):void{
var win:Mp3Upload =Mp3Upload(PopUpManager.createPopUp(this,Mp3Upload,true));
PopUpManager.centerPopUp(win);
}