我想要我的应用程序仅上传.jpg
而不是其他extensions
的文件。
请告诉我,我应该将哪些内容添加到我的代码中?
这是我的代码:
public void jetzt() {
FTPClient ftpClient = new FTPClient();
try {
ftpClient.connect(" FTP SERVER IP");
ftpClient.setSoTimeout(10000);
ftpClient.enterLocalPassiveMode();
if (ftpClient.login(" LOGIN ", " PASSWORD ")) {
ftpClient.setFileType(FTP.BINARY_FILE_TYPE);
ftpClient.setFileTransferMode(FTP.BINARY_FILE_TYPE);
ftpClient.changeWorkingDirectory("/htdocs");
final String serial = getManufacturerSerialNumber();
ftpClient.makeDirectory(serial);
ftpClient.changeWorkingDirectory(serial);
final File folder = new File("mnt/sdcard/YmmyCandy");
for (final File fileEntry : folder.listFiles()) {
try {
FileInputStream fs = new FileInputStream(fileEntry);
if (!fileEntry.isDirectory()) {
String fileName = fileEntry.getName();
ftpClient.storeFile(fileName, fs);
fs.close();
Log.i(TAG, "sent");
}
} catch (Exception e) {
Log.i(TAG, "error uploading");
}
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
答案 0 :(得分:1)
好吧,因为你有文件的名称,你可以检查它是否以.jpg(或.jpeg!)结尾:
String filenameArray[] = fileEntry.getName().split("\\.");
String extension = filenameArray[filenameArray.length-1];
if (extension.equals("jpg") || extensions.equals("jpeg")) {...}
答案 1 :(得分:1)
下面:
for (final File fileEntry : folder.listFiles()) {
...
String fileName = fileEntry.getName();
ftpClient.storeFile(fileName, fs);
您已经拥有文件名"手头&#34 ;;但不是像if (fileName.endsWith(".jpeg"))
那样编写简单的支票,而是上传所有文件!
当然,事情需要一些改进。如果您确切知道所有文件都以.jpeg结尾然后可以工作,但也许jpg,JPG等也应该工作。
如果你想要一个真正的"完整的"解决方案,您必须检查每个文件的MIME类型。