音乐放在服务器的目录文件里就可以了,数据库只需存放音乐的路径。
创新互联专业提供成都主机托管四川主机托管成都服务器托管四川服务器托管,支持按月付款!我们的承诺:贵族品质、平民价格,机房位于中国电信/网通/移动机房,绵阳服务器托管服务有保障!
能存放,但是不是好的解决方案,正常情况下都是在数据库中存放文件路径,图片、音乐、视频文件存放在硬盘上。
给你一个基础的实现方法与一个完全开发的实现方法:
基础实现方法:
1)从网上搜索一个可以播放音乐的 java 类库,该类库带有音乐播放的API供外部程序调用。
2)你直接使用该音乐类库进行音乐播放操作。
3)你设计一个 Swing 界面在播放的时候,把播放的音乐信息存在数据库。
完全开发方法:
1)你自己从最原始做起包括音乐文件的播放解码等全部用 java 写出一个音乐类库供自己的程序调用。
2)你直接使用该音乐类库进行音乐播放操作。
3)你设计一个 Swing 界面在播放的时候,把播放的音乐信息存在数据库。
你应该在数据库表存储音乐文件的路径,然后直接读出文件路劲,然后在页面引用一个音乐播放控件,将读出的文件路径加载的控件上就能显示并能点击播放了
这是我写的上传部分的代码,你可以参考下。
public String savefile() throws Exception{
String realpath = ServletActionContext.getServletContext().getRealPath(
"/file");
realpath = realpath;
if (upload != null) {
//使用上传文件名创建本地文件
File savefile = new File(new File(realpath), uploadFileName);
if (!savefile.getParentFile().exists())
savefile.getParentFile().mkdirs();
//拷贝文件到上传目录
FileUtils.copyFile(upload, savefile);
}
if ((this.uploadFileName != null) (!this.uploadFileName.equals(""))) {
//设置上传文件名
if(myfile.getId()!=null){//重新上传文件时先删除原先的文件
Myfile tmpfile = fileService.loadfile(myfile.getId());
String fileName = tmpfile.getFilename();
String filePath = realpath + "/" + fileName;
File deletefile = new File(filePath);
deletefile.delete();
myfile.setFilename(uploadFileName);
}
else
myfile.setFilename(uploadFileName);
}
else {
//修改信息但是未修改上传文件
if (myfile.getId()!=null) {
myfile.setFilename(fileService.loadfile(myfile.getId()).getFilename());
}
}
fileService.savefile(myfile);
return "success";
}
正确的做法是mysql中设立一个字段存放mp3文件的路径,真正的mp3文件需要存放到磁盘的某个路径下, 这样读取到db的路径,去对应的磁盘里面找mp3并加载。
比如保存: XYZ.Wav在C:\MyProgram\Data\Sounds\X\那么全路径就是
C:\MyProgram\Data\Sounds\X\XYZ.Wav
这时候在mysql的字段中保存的路径就是X\XYZ.Wav