我正在编写一个应用程序,通过该应用程序可以将文件上载到服务器。在应用程序运行期间,信息被写入文件并被删除。无论何时将文件上传到服务器,我都需要一个新的文件名,以便旧文件不会被替换。但是,该文件可能很大,因此我只想维护android系统上的一个文件。我希望服务器上的文件名具有上载时的日期和时间。有没有办法让服务器上的文件名与发送它的设备上的文件名不同?从android向服务器发送文件时更改文件名
我使用服务器上的标准multipart实体框架和php代码将文件上传到服务器。 php代码如下所示:
<form enctype="multipart/form-data" action="upload.php" method="POST">
<input type="hidden" name="MAX_FILE_SIZE" value="100000" />
Choose a file to upload: <input name="uploadedfile" type="file" /><br/
<input type="submit" value="Upload File" />
</form>
<?php
$to_file = "locationdata/" . basename($_FILES['uploadedfile']['name']);
$from_file = $_FILES['uploadedfile']['tmp_name'];
if (move_uploaded_file($from_file, $to_file)) {
echo "Successful upload";
?>
<a href="<?php echo $to_file;?>"><?php echo $to_file;?></a>
<?php
} else {
echo "Unsuccessful upload";
}
?>
下面是我的Android应用程序的代码片段。
public static File file = new File("/sdcard/upload.txt");
public static FileWriter writer;
此代码位于我在应用程序运行期间调用的方法(可能多次)。
writer = new FileWriter(file);
writer.write(".... what I want to print here.......");
writer.close();
然后我用下面的代码发送文件到服务器。
HttpClient client = new DefaultHttpClient();
HttpUriRequest request = new HttpPost(webAddress);
MultipartEntity form = new MultipartEntity();
client.getParams().setBooleanParameter("http.protocol.expect-continue", false);
form.addPart(inputName, new FileBody(new File(filePath)));
((HttpEntityEnclosingRequestBase) request).setEntity(form);
try {
client.execute(request);
System.out.println("Connection Success");
} catch (ClientProtocolException e) {
throw e;
} catch (IOException ee) {
throw ee;
}
哦!那好极了。我是PHP新手,不知道里面有日期格式功能。我会试试这个。 – Sap