上传成功之后,用 request.getParameter("filetxt");拿到的是一个路径:C:fakepathtest.txt
这个路径并非是我本地的路径,已上传就已经是这个路径了。
现在我用了一个方法,来计算这个文件的大小,但是没有成功,不知道为什么?
计算大小的方法如下:
public void getFileSize(String path){
//传入文件路径
File file = new File(path);
//测试此文件是否存在
if(file.exists()){
//如果是文件夹
//这里只检测了文件夹中第一层 如果有需要 可以继续递归检测
if(file.isDirectory()){
int size = 0;
for(File zf : file.listFiles()){
if(zf.isDirectory()) continue;
size += zf.length();
}
System.out.println("文件夹 "+file.getName()+" Size: "+(size/1024f)+"kb");
}else{
System.out.println(file.getName()+" Size: "+(file.length()/1024f)+"kb");
}
//如果文件不存在
}else{
System.out.println("此文件不存在");
}
}
调用方法:
String filetxt = request.getParameter("filetxt");
fileSize.getFileSize(filetxt);
(filetxt = "C:fakepathtest.txt")
结果是:此文件不存在
Le format de téléchargement et de transmission du fichier est différent de celui de la soumission du formulaire général. Il utilise le format
multipart/form-data
pour encoder les donnéesrequest.getParameter
ne peut obtenir que des paires clé-valeur. Le fichier nécessite un traitement spécial et est principalement divisé. en deux parties.Traitement front-end, confirmez que l'attribut
form
de votre formulaire front-endenctype
estmultipart/form-data
, exemple :Traitement en arrière-plan.
tomcat7
Ce qui précède peut utiliser directement l'API nativeHttpServletRequest.getPart()
, dansservlet
:Pour une utilisation spécifique, veuillez vous référer à la documentation javaee
.servlet3.0(Tomcat7)
Les versions suivantes nécessitent un packagejar
tiers pour aider à analyser les fichiers téléchargés. Généralement, lescommons-fileupload
etcommons-fileupload-io
d'Apache sont utilisés. Pour un usage spécifique, veuillez vous référer à la documentation officielle et n'entrerons pas dans les détailsfile.exists() renvoie false. Il ressort du chemin de votre fichier qu'il est manquant. Vous devez vérifier quel processus il est filtré.
Le chemin pour télécharger le fichier est C:fakepathtest.txt. Vous pouvez dire à partir de ce nom qu'il s'agit d'un faux chemin.
Ce chemin vous est donné par le navigateur lorsqu'il vous est téléchargé. Ce chemin n'est pas le chemin qui existe réellement sur votre serveur. Donc si vous utilisez ce chemin pour retrouver ce fichier sur le serveur, il est impossible de le retrouver.