public class Solution extends JFrame {
private static final String FILE_NAME_1 = "Selected SOLL:";
private File file;
private void setNewButton(Container contentPane, final String fileName, String format) {
contentPane.add(Box.createVerticalStrut(5));
final Label label = new Label("Select " + fileName + " in ." + format +" format");
contentPane.add(label);
contentPane.add(Box.createVerticalStrut(10));
Button selection = new Button("Select " + fileName);
contentPane.add(selection);
selection.addActionListener(new FileSelectionListener("Only " + format + " is allowed", format) {
@Override
protected void setSelection(File selectedFile) {
setFile(selectedFile); // call file setter here
label.setText("Selected" + fileName + selectedFile.getAbsolutePath());
}
});
}
// define a setter for your File member
private void setFile(File file) {
this.file = file;
}
public void uploadFiles() {
Container contentPane = this.getContentPane();
setNewButton(contentPane, FILE_NAME_1, "xls");
}
}
它仅适用于.NET Framework。如何在ASP.NET Core项目中编码或解码uri参数?
答案 0 :(得分:121)
对于ASP.NET Core 2.0+,只需添加System.Net
命名空间 - WebUtility
类作为System.Runtime.Extensions
nuget包的一部分提供,在ASP.NET中默认引用核心项目。
对于以前的版本,添加Microsoft.AspNetCore.WebUtilities
nuget包。
然后WebUtility
课程将为您提供:
public static class WebUtility
{
public static string UrlDecode(string encodedValue);
public static string UrlEncode(string value);
}
答案 1 :(得分:69)
可在System.Net.WebUtility.UrlEncode
@Override
public Page<DeviceData> findFirstXByDeviceAndTopicOrderByDateDesc(String device, String topic, int x, Pageable pageable) {
Query query = new Query(Criteria.where(DEVICE_KEY).is(device).and(TOPIC_KEY).is(topic));
query.with(new Sort(Sort.Direction.DESC, DATE_KEY));
query.limit(x);
query.with(pageable);
List<DeviceData> list = mongoTemplate.find(query, DeviceData.class);
Page<DeviceData> page = new PageImpl<DeviceData>(list);
return page;
}
(version 2.0.0 of the .Net Core SDK)
答案 2 :(得分:24)
对于ASP.Net Core 2.0+,如果需要空格编码为%20
而不是+
;
使用:
Uri.EscapeDataString(someString);
答案 3 :(得分:2)
不要浪费你的时间,我对这些所谓的url编码器有丰富的经验,它们都没用,并且有不同的怪癖。例如,WebUtility.UrlEncode没有照顾&#34; +&#34;登录。
如果要对URL参数进行编码,请使用BASE58编码。它只使用字母+数字,因此您不需要进行网址编码。
答案 4 :(得分:0)
我使用的是重定向,而UrlEncode对我不起作用,因为它对整个URL进行了编码。我通过使用UriHelper.Encode解决了这一问题,如下所示。
// generate url string...
return Redirect(Microsoft.AspNetCore.Http.Extensions.UriHelper.Encode(new System.Uri(url)));