如何从输入中删除所选文件的一个文件?

时间:2018-05-27 17:49:12

标签: javascript html

如何使用javascript从输入文件控件中删除所选文件的一个文件?

这是输入字段:

Uri imageUri;

btn_Browse_Image_One.setOnClickListener(this);  
btn_Cancel_Image_One.setOnClickListener(this);  
Next.setOnClickListener(this);

@Override
public void onClick(View view)
{
int id = view.getId();

if (id == R.id.Broswe_image_one)
{
Intent intent = new Intent(Intent.ACTION_GET_CONTENT);
intent.setType("image/*");
startActivityForResult(intent, 101);
}

if (id == R.id.Cancel_ImgView_One)
{
   img_One.setImageDrawable(null);
}

if (id == R.id.Next_Attch_Btn)
{
   if(imageUri != null)
   {
      Intent intent = new Intent(Attachment_class.this, NextActivity.class);                
      intent.putExtra("imageUri", imageUri.toString());
      startActivity(intent);

      or

      Intent intent = new Intent(Attachment_class.this, NextActivity.class);
      Bitmap bitmap;  // take from img view 
      ByteArrayOutputStream bs = new ByteArrayOutputStream();
      bitmap.compress(Bitmap.CompressFormat.PNG, 50, bs);
      intent.putExtra("byteArray", _bs.toByteArray());
      startActivity(intent);
   }
   else
   {
        Log.i("ImageError","Image not selected"); 
   }
}

protected void onActivityResult(int requestCode, int resultCode, final Intent data)
{ 
    super.onActivityResult(requestCode, resultCode, data);

    if (requestCode == 101 && resultCode == RESULT_OK)
    {
         Uri uri = data.getData();
         imageUri = uri;

         Picasso.get().load(uri).into(img_One);

         // Add the recent dependency for Picasso
    }
}

1 个答案:

答案 0 :(得分:1)

你做不到。出于安全原因,HTML文件输入不允许您操纵它的值。正如您在FileList类中看到的那样,它保存HTML文件输入文件没有任何方法可以操作它。只是它是一个只读类。但是如果你真的想这样做,可以通过迭代FileList类将文件插入到数组中,然后就可以从中删除文件。但请记住,您无法将修改后的值设置回输入。因此,您可以使用具有base64编码文件值的多个隐藏输入或Ajax文件上载