2013-07-28 235 views
0

我使用了一个名为UploadFFGS功能,这是它的内容:无法上传文件到服务器

URL url = new URL("http://linkedme.com/filebet.txt"); 
     URLConnection ucn = url.openConnection(); 
     HttpURLConnection connection = (HttpURLConnection) url.openConnection(); 

     connection = (HttpURLConnection) url.openConnection(); 

     FileInputStream is = new FileInputStream("filebet.txt"); //before I download the same file because I must edit it and upload the new version 
     OutputStream ostream = connection.getOutputStream(); 
     PrintWriter pwriter = new PrintWriter(ostream); 

     pwriter.print(jTextArea1.getText()); 
     pwriter.close(); 

这个节目从来不是我的桌面上的文件filebet我已经上传到我的链接(http://linkedme.com/filebet.txt)。有任何想法吗?我把它用这种方式:

  try { 

     UploadFFGS(); 
     } 
      catch (MalformedURLException ex) { 
      Logger.getLogger(xGrep.class.getName()).log(Level.SEVERE, null, ex); 
     } catch (IOException ex) { 
      Logger.getLogger(xGrep.class.getName()).log(Level.SEVERE, null, ex); 
     } 

此外,NetBeans的给了我这个错误: “java.net.ProtocolException:不能写入到一个URLConnection如果=则将DoOutput假 - 调用setDoOutput(真)”。

+1

是否有某种异常或错误?当你在调试器中执行代码时,它在什么时候失败? – David

+0

我不确定导致此功能的混淆。首先,你不能简单地写入一个URL。您需要确定本网站的文件上传规定 - 您是否必须通过某种形式发布文件?您也可以从URL中打开连接不少于三次,并且您的源文件的'FileInputStream'永远不会被读取。 –

+0

我发布了错误+我使用的例外 –

回答

3

由于您的API端点(很可能)是常规文件而不是解释脚本,因此您的方法将无法工作。端点必须提供一个API用来上传文件(POST/PUT等)。

+0

所以我应该使用URLConnection以外的其他东西? +1的方式 –

+0

第一步是在linkedme.com上设置端点。是的,您仍然可以使用它来写入原始内容并将文件的原始内容保存在另一侧。 –

+0

在服务器上设置类似php的东西,将整个请求体保存到一个文件中。 –

0

我有不同的解决方案。也许这对别人有用。 只需在您的网络浏览器中查看您的高级代理设置。 我们公司的系统工程师已经更改了代理设置,但我并没有意识到这一点。 这个错误花了我3个工作日。在我的公司编写一个ftp上传项目时,我得到了这个doOutput错误。我试过所有的东西,比如增加conn.setDoOutput(true)或'五十个阴影'的类似解决方案,但是他们中没有人救了我。 但是,在我将代理设置更改为正确的代码后,错误消失了,现在我可以使用java中的urlConnection通过ftp上传我的文件。 我使用下面链接中的代码进行上传过程,并且除主机,端口,用户和密码外没有添加任何内容。 http://www.ajaxapp.com/2009/02/21/a-simple-java-ftp-connection-file-download-and-upload/