Ant-design: Unggah komponen: beforeUpload periksa masalah sebelum mengunggah

Dibuat pada 29 Des 2017  ·  7Komentar  ·  Sumber: ant-design/ant-design

Versi: kapan

3.0.3

Lingkungan Hidup

win7, chrome63.0.3239.84

Tautan reproduksi

https://codepen.io/LynnHg/pen/YYZdRV

Langkah-langkah untuk mereproduksi

handleBeforeUpload (file) {
const sizeOk = file.size <1024 * 300;
const typeOk =
file.type === 'image / jpeg' ||
file.type === 'image / png' ||
file.type === 'image / bmp' ||
file.type === 'image / gif';

if (!typeOk) {
  message.error('照片格式有误!');
} else {
  if (!sizeOk) {
    message.error('照片大小超过300K!');
  }
}

return sizeOk && typeOk;

}

Apa yang diharapkan?

Saat mengunggah foto dalam format yang salah, ini menunjukkan bahwa formatnya salah, tetapi tidak ada efek yang ditampilkan

Apa yang sebenarnya terjadi?

Saat mengunggah foto dalam format yang salah, ini menunjukkan bahwa formatnya salah, tetapi antarmuka menunjukkan "Mengunggah file"

Inactive 🐛 Bug

Komentar yang paling membantu

beforeUpload (file) {
const maxFileSize = 2;
const isLtMax = file.size / 1024/1024 <maxFileSize;

return new Promise((resolve, reject) => {
  if(!isLtMax) {
    reject(file);
  } else {
    resolve(file);
  }
});

};
Cara ini akan mencegah penambahan file kesalahan ke fileList.

Semua 7 komentar

Akan lebih baik jika Anda menulis masalah / komentar Anda dalam bahasa Inggris, sehingga lebih banyak orang yang dapat memahami Anda.
Dan ini berarti lebih banyak orang dapat membantu Anda atau mendapatkan keuntungan dari masalah / komentar Anda.
Lihat: https://github.com/ant-design/ant-design/issues/4897

Ini karena ada masalah dengan metode callback onChange , tidak bisa ditulis seperti ini

Saya pikir itu masalah, Ketika beforeUpload retun false, file objek di callback onChange harus memberikan hak status .

dan jika menggunakan Promise, reject tidak akan memicu onChange , tetapi return false tidak!

if (!typeOk) {
   message.error('照片格式有误!');
   return false
} 
if (!sizeOk) {
    message.error('照片大小超过300K!');
    return false
}
return true;

Duplikat # 8020

beforeUpload (file) {
const maxFileSize = 2;
const isLtMax = file.size / 1024/1024 <maxFileSize;

return new Promise((resolve, reject) => {
  if(!isLtMax) {
    reject(file);
  } else {
    resolve(file);
  }
});

};
Cara ini akan mencegah penambahan file kesalahan ke fileList.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat