为什么我在verycd下的片没字幕

为什么我在verycd下的片没字幕,第1张

字幕大部分都是外挂的,格式一般是Srt或者Sub+Idx的。

另外一般会WinRAR打包,

你找找看下载栏里有没有这样的文件,有的话,下载好,和电影文件放在一起,

改成一样的文件名,比如123.avi和123.srt,或者123.avi,123.idx,123.sub。

这样用暴风或者终极解码之类的播放器就可以看到字幕了。

form表单提交文件,建议用smartupload上传,暂存在web服务器目录下,然后稍微一下下面的代码,ftp上传后,删除暂存文件,ok

import java.io.File

import java.io.FileInputStream

import java.io.FileOutputStream

import java.io.IOException

import java.io.InputStream

import java.io.OutputStream

import java.util.StringTokenizer

import org.apache.commons.net.ftp.FTP

import org.apache.commons.net.ftp.FTPClient

import org.apache.commons.net.ftp.FTPReply

import org.apache.log4j.Logger

/**

* Ftp 服务类,对Apache的commons.net.ftp进行了包装<br>

* 依赖库文件:commons-net-1.4.1.jar

*

* @version 1.0 2008-02-18

* @author huchao@jbsoft

*/

public class FtpService {

public FtpService(String serverAddr, String lsenport, String userName,

String pswd) {

this.ftpServerAddress = serverAddr

this.port = Integer.parseInt(lsenport)

this.user = userName

this.password = pswd

}

/**

* FTP 服务器地址

*/

private String ftpServerAddress = null

/**

* FTP 服务端口

*/

private int port = 21

/**

* FTP 用户名

*/

private String user = null

/**

* FTP 密码

*/

private String password = null

/**

* FTP 数据传输超时时间

*/

private int timeout = 0

/**

* 异常:登录失败

*/

private final I2HFException EXCEPTION_LOGIN = new I2HFException("COR101",

"FTP服务器登录失败")

/**

* 异常:文件传输失败

*/

private final I2HFException EXCEPTION_FILE_TRANSFER = new I2HFException(

"COR010", "FTP文件传输失败")

/**

* 异常:IO异常

*/

private final I2HFException EXCEPTION_GENERAL = new I2HFException("COR010",

"FTP IO 异常")

private static final Logger logger = Logger.getLogger(FtpService.class)

/**

* 初始化FTP连接,并进行用户登录

*

* @return FTPClient

* @throws I2HFException

*/

public FTPClient initConnection() throws I2HFException {

FTPClient ftp = new FTPClient()

try {

// 连接到FTP

ftp.connect(ftpServerAddress, port)

int reply = ftp.getReplyCode()

if (!FTPReply.isPositiveCompletion(reply)) {

ftp.disconnect()

throw new I2HFException("COR010", "FTP服务器连接失败")

}

// 登录

if (!ftp.login(user, password)) {

throw EXCEPTION_LOGIN

}

// 传输模式使用passive

ftp.enterLocalPassiveMode()

// 设置数据传输超时时间

ftp.setDataTimeout(timeout)

logger.info("FTP服务器[" + ftpServerAddress + " : " + port + "]登录成功")

} catch (I2HFException te) {

logger.info(te.errorMessage, te)

throw te

} catch (IOException ioe) {

logger.info(ioe.getMessage(), ioe)

throw EXCEPTION_LOGIN

}

return ftp

}

/**

* 设置传输方式

*

* @param ftp

* @param binaryFile

*true:二进制/false:ASCII

* @throws I2HFException

*/

public void setTransferMode(FTPClient ftp, boolean binaryFile)

throws I2HFException {

try {

if (binaryFile) {

ftp.setFileType(FTP.BINARY_FILE_TYPE)

logger.info("FTP文件传输方式为:二进制")

} else {

ftp.setFileType(FTP.ASCII_FILE_TYPE)

logger.info("FTP文件传输方式为:ASCII")

}

} catch (IOException ex) {

logger.info(ex.getMessage(), ex)

throw EXCEPTION_GENERAL

}

}

/**

* 在当前工作目录下建立多级目录结构

*

* @param ftp

* @param dir

* @throws I2HFException

*/

public void makeMultiDirectory(FTPClient ftp, String dir)

throws I2HFException {

try {

StringBuffer fullDirectory = new StringBuffer()

StringTokenizer toke = new StringTokenizer(dir, "/")

while (toke.hasMoreElements()) {

String currentDirectory = (String) toke.nextElement()

fullDirectory.append(currentDirectory)

ftp.makeDirectory(fullDirectory.toString())

if (toke.hasMoreElements()) {

fullDirectory.append('/')

}

}

} catch (IOException ex) {

logger.info(ex.getMessage(), ex)

throw EXCEPTION_GENERAL

}

}

/**

* 更改服务器当前路径

*

* @param ftp

* @param dir

* @throws I2HFException

*/

public void changeWorkingDirectory(FTPClient ftp, String dir)

throws I2HFException {

try {

if (!ftp.changeWorkingDirectory(dir)) {

throw new I2HFException("COR010", "目录[ " + dir + "]进入失败")

}

} catch (I2HFException tfe) {

logger.info(tfe.errorMessage, tfe)

throw tfe

} catch (IOException ioe) {

logger.info(ioe.getMessage(), ioe)

throw EXCEPTION_GENERAL

}

}

/**

* 上传文件到FTP服务器

*

* @param ftp

* @param localFilePathName

* @param remoteFilePathName

* @throws I2HFException

*/

public void uploadFile(FTPClient ftp, String localFilePathName,

String remoteFilePathName) throws I2HFException {

InputStream input = null

try {

input = new FileInputStream(localFilePathName)

boolean result = ftp.storeFile(remoteFilePathName, input)

if (!result) {

// 文件上传失败

throw EXCEPTION_FILE_TRANSFER

}

logger.info("文件成功上传到FTP服务器")

} catch (I2HFException tfe) {

logger.info(tfe.getMessage(), tfe)

throw tfe

} catch (IOException ioe) {

logger.info(ioe.getMessage(), ioe)

throw EXCEPTION_FILE_TRANSFER

} finally {

try {

if (input != null) {

input.close()

}

} catch (IOException ex) {

logger.info("FTP对象关闭异常", ex)

}

}

}

/**

* 下载文件到本地

*

* @param ftp

* @param remoteFilePathName

* @param localFilePathName

* @throws I2HFException

*/

public void downloadFile(FTPClient ftp, String remoteFilePathName,

String localFilePathName) throws I2HFException {

boolean downloadResult = false

OutputStream output = null

try {

output = new FileOutputStream(localFilePathName)

downloadResult = ftp.retrieveFile(remoteFilePathName, output)

if (!downloadResult) {

// 如果是文件不存在将异常抛出

throw new I2HFException("COR011", "文件不存在")

}

logger.info("文件成功从FTP服务器下载")

} catch (I2HFException tfe) {

logger.error(tfe.getMessage(), tfe)

throw tfe

} catch (IOException ex) {

logger.error(ex.getMessage(), ex)

throw EXCEPTION_FILE_TRANSFER

} finally {

try {

if (output != null) {

output.close()

}

if (!downloadResult) {

new File(localFilePathName).delete()

}

} catch (IOException ex) {

logger.error("FTP对象关闭异常", ex)

}

}

}

/**

* Method setFtpServerAddress.

*

* @param ftpServerAddress

*String

*/

public void setFtpServerAddress(String ftpServerAddress) {

this.ftpServerAddress = ftpServerAddress

}

/**

* Method setUser.

*

* @param user

*String

*/

public void setUser(String user) {

this.user = user

}

/**

* Method setPassword.

*

* @param password

*String

*/

public void setPassword(String password) {

this.password = password

}

/**

* Method setTimeout.

*

* @param timeout

*String

*/

public void setTimeout(String timeout) {

try {

this.timeout = Integer.parseInt(timeout)

} catch (NumberFormatException ex) {

// 默认超时时间500毫秒

this.timeout = 500

}

}

/**

* Method setPort.

*

* @param port

*String

*/

public void setPort(String port) {

try {

this.port = Integer.parseInt(port)

} catch (NumberFormatException ex) {

// 默认端口21

this.port = 21

}

}

}

=====================================

jsp上传部分

===================================

<form method="post" name="uploadform" id="uploadform" action="upload" ENCTYPE="multipart/form-data">

<input type="hidden" name="service" value="com.jbsoft.i2hf.corpor.services.CstBatchBizServices.exclUpload"/>

<table cellspacing="0" cellpadding="0">

<tr>

<td width="20%" align="right">上传本地文件:</td>

<td width="80%"><input class="" style="width:300px" type="file" width="300px" name="exclname" id="exclname"/></td>

</tr>

</table>

</form>

============================================

上传的servlet用的是smartupload

,部分代码可以参考一下:

==========================================

SmartUpload su = new SmartUpload()

su.setCharset("UTF-8")

su.initialize(getServletConfig(), request, response)

su.setMaxFileSize(10240000)

su.setTotalMaxFileSize(102400000)

su.setAllowedFilesList("xls")

su.upload()

===========================================

代码里面有一些客户的信息,不能全部给你哈

JSP将HTML的表单数据提交生成一个XML文件的方法:

1、定义表单,封装id,firstName和lastName

<form:form modelAttribute="person">

<form:hidden path="id" />

<fieldset>

<div class="form-row">

<label for="firstName"><fmt:message key="person.form.firstName"/>:</label>

<span class="input"><form:input path="firstName" /></span>

</div>

<div class="form-row">

<label for="lastName"><fmt:message key="person.form.lastName"/>:</label>

<span class="input"><form:input path="lastName" /></span>

</div>

<div class="form-buttons">

<div class="button">

<input type="submit" id="save" name="_eventId_save" value="<fmt:message key="button.save"/>"/>

<input type="submit" name="_eventId_cancel" value="Cancel"/>

</div>

</div>

</fieldset>

</form:form>

2、提交到servlet后,调用构造xml的java方法:

try {

DocumentBuilderFactory docFactory = DocumentBuilderFactory.newInstance()

DocumentBuilder docBuilder = docFactory.newDocumentBuilder()

// root elements

Document doc = docBuilder.newDocument()

Element rootElement = doc.createElement("company")

doc.appendChild(rootElement)

// staff elements

Element staff = doc.createElement("Staff")

rootElement.appendChild(staff)

// set attribute to staff element

Attr attr = doc.createAttribute("id")

attr.setValue("1")

staff.setAttributeNode(attr)

// shorten way

// staff.setAttribute("id", "1")

// firstname elements

Element firstname = doc.createElement("firstname")

firstname.appendChild(doc.createTextNode("yong"))

staff.appendChild(firstname)

// lastname elements

Element lastname = doc.createElement("lastname")

lastname.appendChild(doc.createTextNode("mook kim"))

staff.appendChild(lastname)

// nickname elements

Element nickname = doc.createElement("nickname")

nickname.appendChild(doc.createTextNode("mkyong"))

staff.appendChild(nickname)

// salary elements

Element salary = doc.createElement("salary")

salary.appendChild(doc.createTextNode("100000"))

staff.appendChild(salary)

// write the content into xml file

TransformerFactory transformerFactory = TransformerFactory.newInstance()

Transformer transformer = transformerFactory.newTransformer()

DOMSource source = new DOMSource(doc)

StreamResult result = new StreamResult(new File("d:\\person.xml"));

transformer.transform(source, result)

System.out.println("File saved!")

} catch (ParserConfigurationException pce) {

pce.printStackTrace()

} catch (TransformerException tfe) {

tfe.printStackTrace()

}

3、构造完成:

<?xml version="1.0" encoding="UTF-8" standalone="no" ?>

<company>

<staff id="1">

<firstname>yong</firstname>

<lastname>mook kim</lastname>

<nickname>mkyong</nickname>

<salary>100000</salary>

</staff>

</company>


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/tougao/8122259.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-13
下一篇 2023-04-13

发表评论

登录后才能评论

评论列表(0条)

保存