【问题标题】:Issue uploading files to a web server将文件上传到 Web 服务器的问题
【发布时间】:2017-10-10 19:47:09
【问题描述】:

如果文件名包含土耳其语字符(ş、ı、ü、ü、ö、ğ),则文件不会上传到 Web 服务器。上传到 Web 服务器是在 php 页面上完成的。那里没有问题。它上传不包含土耳其语字符(英文字母)的文件名。我该如何解决这个问题?

    private String uploadFile() 
    {
        String responseString = null;

        HttpClient httpclient = new DefaultHttpClient();
        HttpPost httppost = new HttpPost(Config.FILE_UPLOAD_URL);
        try 
        {
            AndroidMultiPartEntity entity = new AndroidMultiPartEntity(new ProgressListener() {
            @Override
            public void transferred(long num) {
                publishProgress((int) ((num / (float) totalSize) * 100));
            } });

            File kaynakDosya = new File(filePath);

            entity.addPart("dosya", new FileBody(kaynakDosya));
            entity.addPart("islem", new StringBody(GlobalVeri.IslemFotoVideoDosya));

            totalSize = entity.getContentLength();
            httppost.setEntity(entity);

            HttpResponse response = httpclient.execute(httppost);
            HttpEntity r_entity = response.getEntity();

            int statusCode = response.getStatusLine().getStatusCode();
            if (statusCode == 200) {
                responseString = EntityUtils.toString(r_entity);
            } else {
                responseString = "Bir hata oluştu! Http Durum Kodu: " + statusCode;
            }           
        } 
        catch (ClientProtocolException e) {
            responseString = e.toString();
        } 
        catch (IOException e) {
            responseString = e.toString();
        }
        return responseString;
    }

【问题讨论】:

    标签: php android http-post multipartentity


    【解决方案1】:

    我相信您缺少 UTF-8 编码。作为StringBody,将您传递的文本作为第一个参数与这些特殊字符一起使用,并确保在第二个参数中说它是utf-8。替换

    entity.addPart("islem", new StringBody(GlobalVeri.IslemFotoVideoDosya));
    

    entity.addPart("islem", new StringBody(GlobalVeri.IslemFotoVideoDosya, Charset.forName(HTTP.UTF_8))));
    

    【讨论】:

    • textview.getText().toString() ??
    • 是我的源文件吗?
    • entity.addPart("dosya", new StringBody(kaynakDosya.toString(), Charset.forName(HTTP.UTF_8))); //它没有工作:(
    猜你喜欢
    • 2017-12-27
    • 2017-12-09
    • 2012-04-02
    • 2019-05-29
    • 2014-04-04
    • 2012-05-07
    • 1970-01-01
    • 2015-02-07
    • 2017-04-20
    相关资源
    最近更新 更多