Я столкнулся с простой проблемой
Я хотел бы получить локальный путь от конечного пользователя моего веб-приложения. Мне нужно только это, а не загружать файл. (Я знаю, что в шве или в Primefaces есть fileUpload тегов, но мне просто нужен локальный полный путь, поскольку я загружаю напрямую в Веб-альбомы Picasa через Google API)
Другими словами, я хотел бы связать некоторый HTML-тег: input type = "file"
к свойству bean-компонента (я заметил, что тег JSF h: inputText не имеет атрибута type )
Есть идеи?
Конверт: JBoss AS 5.1, JSF1.2, Seam 2.2, Primefaces 1.1
Редактировать: вот мое рабочее решение
Благодаря ответам я реализовал сценарий загрузки файла непосредственно в Picasa
<h:form prependId="false" enctype="multipart/form-data">
<s:fileUpload id="fileUpload"
data="#{picasa.incomingFile}"
contentType="#{picasa.fileType}"/>
<h:inputText id="albumId"
value="#{picasa.albumId}" />
<h:commandLink action="#{picasa.upload()}"
value="Upload">
<f:param name="s"
value="#{subjectHome.id}"/>
</h:commandLink>
</h:form>
и код компонента
@Name("picasa")
public class PicasaService {
@Logger private Log log;
private PicasawebService service;
private InputStream incomingFile;
private String fileType;
private String albumId;
@Create
public void setUp()
{
service = new PicasawebService("picasaService");
try {
service.setUserCredentials("xxx@yyyy.zzz", "password");
} catch (AuthenticationException e) {
e.printStackTrace();
}
}
public void upload()
{
URL albumUrl;
PhotoEntry returnedPhoto;
try {
albumUrl = new URL("https://picasaweb.google.com/data/feed/api/user/default/albumid/" + albumId);
MediaStreamSource myMedia = new MediaStreamSource(incomingFile , this.fileType);
returnedPhoto = service.insert(albumUrl, PhotoEntry.class, myMedia);
} catch (MalformedURLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ServiceException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
Таким образом, мне кажется, что файл не передается дважды (по одному с компьютера конечного пользователя на сервер моего веб-приложения и оттуда на сервер Picasa WA).
Надеюсь, это поможет